[CS] 프로세스-스레드(Thread)

do yeon kim·2022년 10월 15일
0

CS-운영체제

목록 보기
5/20

http://www.kocw.net/home/cview.do?cid=3646706b4347ef09

프로세스 - 스레드

동기식 vs 비동기식 입출력

입출력처리를 운영체제를 통해서 해야하기 때문에 사용자프로그램은 운영체제에 요청한다.

동기식 입출력
입출력처리는 시간이 걸리기 때문에 입출력을 요청한 프로세스는 기다려야 되면, 입출력이 끝날때까지 아무것도 않하고 기다리면 동기식 입출력이다.
동기식 구현방법으로는 두가지가 있다.
구현방법1은 사용자프로그램이 cpu를 가지고 있으면서 기다리는 것이다.
구현방법2는 cpu를 다른 사용자프로그램에 넘기고 기다리는 것이다.

비동기식 입출력
사용자프로그램이 입출력 요청을 하고, 기다리지 않고 다시 cpu를 잡고 무언가 작업을 수행하면 비동기식 입출력이다.




Thread

프로세스 내부의 cpu 수행단위가 여러개 있는 경우 thread라고 한다.

프로세스가 실행이되면 주소공간(code,data,stack)이 프로세스마다 만들어지고, 프로세스를 관리하기 위해서 운영체제 커널에 PCB를 둔다.

동일한 일을 하는 프로세스를 만드는 경우 주소 공간을 하나만 만들고 프로세스마다 다른 부분의 코드를 실행하게 하면 된다. 다음 실행을 부분을 알리는 프로그램카운터만 동일한 프로세스를 만드는 갯수만큼 여러개 두면된다.

하나의 프로세스에 cpu수행단위만 여러개 두는 것을 thread라고 한다.

스레드별로 program counter, register set, stack space만 독립적으로 가지고 있고, code section, data section, os resources 등은 동일한 프로세스이기 때문에 공유한다.

하나의 프로세스안에 다중스레드가 있으면, 하나의 스레드가 block되도 다른 스레드가 cpu를 잡아서 수행될 수 있다.

웹브라우저에 네이버를 띄운다고 할 때 네트워크를 통해서 웹페이지를 읽어오는데 이것 역시 I/O작업이고, 읽어 오는 동안은 block이 되고, 사용자 입장에서는 답답하다. 여러개의 스레드이면 그림을 읽어오는 동안 먼저 글이라도 먼저 보일 수 있다. 사용자에게 빠른 응답이 가능하다.

스레드르 이용하지 않고 동일한 작업을 하는 프로세스를 여러개 만들게 되면, 프로세스 별로 주소공간도 만들어야하기 때문에 메모리를 차지하게 된다.
각각이 메모리에 올라가야 하기 때문에 스레드를 이용하면, 자원을 절약할 수 있다.

스레드의 장점
사용자 입장에서 응답성이 빠르다. 자원을 공유한다. 경제적으로 효율적이다.

0개의 댓글