[운영체제] 운영체제 반효경 교수님 2014년 - 3. Process

June·2021년 6월 3일
0

프로세스의 개념

프로세스의 문맥이란 어디까지 실행했고, 독자적인 주소 공간에 대한 정보, 레지스터에 어떤 값이 있는가 등이다. 이런 문맥을 파악하는 이유는 여러 프로세스들이 번갈아가며 실행되기 때문이다.

프로세스의 상태 (Process State)

ready 상태의 프로세스들이 번갈아가며 cpu를 차지한다.

blocked는 cpu를 주어도 당장 쓸 수 없는 상태이다.

프로세스 상태도

cpu를 가지고 있어도 작업을 못하면 waiting상태로, 타이머에 의해 뺏기면 ready 상태로 돌아간다.

프로세스의 상태

하드웨어에 가서 기다릴 수도 있지만, 소프트웨어의 고융 데이터에 가서 기다릴 수도 있다.

Process Control Block (PCB)

문맥 교환 (Context Switch)

프로세스 하나에서 다른 프로세스로 넘어가는 과정이다.

사용자 프로세스에서 운영체제로 넘어가는 것은 context swtich가 아니다.

프로세스를 스케줄링 하기 위한 큐

Ready Queue와 다양한 Device Queue

reqdy queue에는 pcb가 줄줄이 연결되어있는 것을 볼 수 있다.

프로세스 스케줄링 큐의 모습

스케줄러

각각의 자원별로 앞으로 뭐할지를 정하는 것이다.

단기 스케줄러가 cpu 스케줄러다. 굉장히 짧은 시간 단위로 이뤄지기 때문에 short-term scheduler라고 한다.

Long-term scheduler는 메모리를 어떤 프로세스에 줄지 결정하는 스케줄러다. 메모리에 여러 프로그램이 올라가는 것을 컨트롤하는 것이다. 하지만 현대 운영체제에서는 잘 없다.

중기 스케줄러는 동시에 메모리에 너무 많은 프로그램이 올라와있지 않도록 조절하는 것이다.

프로세스의 상태

중기 스케줄러에서 쫓겨난 상태를 suspended라고 한다.

blocked는 자신이 요청한 것이 끝나면 ready가 되고,
suspended는 외부에서 resume해줘야 돌아갈 수 있다.

프로세스 상태도

운영체제의 코드가 실행중인 것을 running (monitor mode)이고, 사용자 프로세스가 러닝 중일 때 running (user mode)이다.

ready 상태에서 suspended되었는지, blocked에서 suspended에서 blocked된지를 구분한다.

동기식 입출력과 비동기식 입출력

입출력을 요청한 프로세스가 입출력이 끝날 때까지 기다리면 동기식, 안기다리면 비동기식이다.

Thread

프로세스 내부에 cpu 수행단위 여러 개 두고 있는 것을 스레드라고 부른다.
스레드끼리는 최대한 공유를 하나 별도로 가지고 있는 것은 cpu 수행과 관련된 프로그램 카운터, 레지스터, 스택을 별도로 가지고 있다.

스레드를 lightweight process라고도 부른다.

네트워크를 통해 웹페이지를 읽어올 때 blocked 상태가 된다. 멀티 스레드를 이요하면, 하나의 스레드가 그림을 가져오는 동안, 또 다른 스레드가 읽어온 것이라도 보여줄 수 있다.

스레드는 cpu 관련 정보만 각각 가지게 된다.

Benefits of Threads

스레드의 장점!
MP는 Multi Processor다. 굉장히 큰 행렬을 곱한다던지 등에서 이점이 있다.

Implementation of Threads

kernel thread는 쓰레드가 여러 개 있다는 것을 운영체제가 알고있다.
user thread는 프레세스 안에 스레드가 여러개 있다는 것을 운영체제가 모른다.

0개의 댓글