goal
thread의 개념을 이해하기 전에
- 선행 1 : 멀티프로세싱이란?
- 선행 2 : 멀티프로그래밍이란?
- 선행 3 : 멀티태스킹이란?
- goal : thread란? ->포스팅예정
선행개념을 넣는 이유
사실 쓰레드만 이해해서, 쓰레드가 어떤 역할을 하는지만 이해해도 코드를 작성하는데 큰 문제는 없을 것이라 생각한다. 하지만 파고들고 파고들수록 더 큰 부분의 개념을 알게 되었고, 지금 이해한 내용을 까먹지 않기 위해 기록하는 동시에 운영체제 위에서 일반적으로 프로그램이 돌아가는 방식을 이해하기 위해 글을 적어본다. 난 개발자니까 프로그램이 시스템에서 어떻게 도는지는 알아야겠지?
근데, 이거 CS아니야?????????????????? -> 그냥 운영체제에 기입
CS내용이다. 근데, java프로그램에서는 thread처리에 매우 큰 장점을 가진다고한다.
thread는 개발하는데 있어서 고려해야할 0순위 부분이라고 생각이든다.
thread처리를 무엇인지 이해하고 코드를 작성하는 것이 나에게 큰 도움이 될 것이라고 생각했고,
두고 두고 두고 두고 두고 보고 읽고 맛보고 씹고 즐길(?) 생각이다.
1. thread의 개념을 보기전에
[1] 선행 1 : 멀티프로세싱이란?
- 프로세서(CPU)
- 다수의 프로세서(CPU)가 작업을 협력적으로 일처리한다.
※ 보통 하나의 프로세서는 하나의 작업을 맡지만, 다수의 프로세서가 다수의 작업을 함께 처리한다.
1. 장점
- 하나의 프로세서가 고장이 나더라도 다른 프로세서가 작업을 하고 있기 때문에 작업이 멈추지 않는다.
- 여러개의 프로세스가 처리되어야 할 때, 동일한 데이터를 사용한다면 각 데이터를 프로세서에게 할당할 필요 없이 하나의 공간에 데이터를 저장한 후, 이를 공유하여 사용하도록 한다. 그러면 메모리측 비용의 절약!
[2] 선행 2: 멀티프로그래밍이란? <난 이기적, 프로세스 또 접근할래>
작업처리의 비효율적 문제를 해결한 멀티프로그래밍
- !!! 하나의 프로세서가 하나의 프로세스를 수행하는 동안 다른 프로세스에 접근할 수 있도록 하는 방법 !!!
- 프로세서가 프로세스를 하나만 처리할 경우, 프로세서가 처리하는 속도와 프로세스의 입력/출력의 속도차이로 생기는 문제로 프로세서는 프로세스가 일을 처리할 때까지 가---만히 있게 된다. (idle상태)
- 이러한 비효율적인 상태를 해결하기 위해서 고안된 방법이 멀티프로그래밍이다.
- 멀티프로그래밍은 프로세스의 입/출력이 완료가 될 때까지 기다릴 필요없이 다른 프로세스를 처리함으로써 계속적인 작업을 수행할 수 있도록 한다.
※ 멀티프로그래밍 vs 멀티태스킹
- 멀티프로그래밍 : 프로세서의 자원을 막기위함
- 멀티태스킹 : 정해진 시간동안 각각의 task를 번갈아가며 수행하는 것을 의미한다.
[3] 선행 3: 멀티태스킹이란? <동시에 동작하는 것처럼 보이지? 넌 속고있어>
컴퓨터에서 두 가지 이상의 프로세스가(웹브라우저 + 뮤직 + 독서애플리케이션) 스케줄링에 의해 번갈아 가며수행되도록 해주는 것
- 프로세서는 특정 순간에 하나의 작업만 수행할 수 있다.
- 하지만 우리는 컴퓨터를 사용할 때, 인터넷도 사용하고 게임도 하고 웹서핑도 하는 등 작업을 동시에 사용한다.
- 이는 운영체제의 스케줄링에 의해 번갈아 가며 작업을 수행해주기 때문이다.
추가로, 메신져 프로그램에서 메시지 작성과 파일을 같이 올리는 것도 멀티태스킹에 속한다.
멀티태스킹의 스케줄링 방식의 수행은 아래 3가지를 이용해 수행된다.
- 멀티 프로그래밍 방식 : 생략
- 시분할 방식(Time-sharing) : cpu 전체 사용 시간을 작은 작업 시간량으로 분할하여 그 시간량 동안 작업에게 cpu를 할당하는 방법
- 시스템 방식(Real-time) : 말 그대로 실시간으로 처리해 주는 것을 의미한다.
※ 멀티프로그래밍 vs 멀티태스킹
- 멀티프로그래밍 : 프로세서의 자원을 막기위함
- 멀티태스킹 : 정해진 시간동안 각각의 task를 번갈아가며 수행하는 것을 의미한다.
[4] goal : 쓰레드란?????
포스팅예정
'CS > 운영체제' 카테고리의 다른 글
운영체제 + java관련 + 개발자라면 :) thread란 무엇이고 왜 알아야 하는가?????????????? (8) | 2022.05.11 |
---|