혼공단/컴구운체

혼공컴운 4주차 (프로세스와 스레드)

nownow 2025. 2. 17. 21:32

https://www.youtube.com/watch?v=6SfLag6ktJc

 

 

프로세스

프로그램이 실행되면 프로세스가 되며 커널영역에 PCB가 저장된다.

PCB에는 각 프로세스의 PC 레지스터 정보 등 주요 context가 저장되어 있고, 인터럽트 등으로

cpu를 점유중인 프로세스가 바뀌며 context switching이 일어날 때 PCB에 정보를 저장하고 불러온다.

프로세스들은 fork되며 복사되고 부모의 ppid를 저장하며 exec()되어 수정된다 (Windows에서는 다른방식)

생성된 프로세스는 ready 상태에서 cpu를 할당받는 dispatch되며 running 상태가 되고

타이머 인터럽트에 의해 ready상태로 돌아가거나, 입출력 요청 후 wait 상태로 머문다.

입출력 완료 후 인터럽트 요청을 보내고 ready상태로 복귀한다.

종료상태는 terminate

 

스레드

fork()시에 데이터, 코드 힙, 스택 영역이 모두 복사되어 개별 저장공간을 갖는 프로세스와 달리

스레드간에서는 프로세스 내 자원을 공유한다 각자 PC와 레지스터, 스택영역을 가질 뿐

코드, 데이터,힙 영역과 열린 파일과 같은 자원을 공유한다.

프로세스 간에도 공유메모리를 두어 자원을 공유하거나 소켓등을 통해 통신하기도 한다.

 

기본숙제

p.304 1번

                                                                  

                        ㅣㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㄱ

                        ㅣ                             (타이머 인터럽트)

                        ㅣ                                     ㅣ

(1) 생성 -> (2) 준비 -> (디스패치) -> (3) 실행 -> (4)종료

                        ㅣ                                     ㅣ

                        ㅣ                                     ㅣ

                        ㅣ                                 (입출력 요청)

                        ㅣㅡㅡㅡㅡㅡㅡㅡㅡㅡ (5)대기

                         

추가숙제

Ch.11-2 1번

FCFS 알고리즘에 ABCD 순으로 삽입된다면

그대로 먼저들어간순으로 A-B-C-D 순으로 처리됨.

 

최근 시스템에 일반적으로 채택되는 CPU 스케줄링 기법인 다단계 피드백 큐를 사용할 경우

모두 우선순위가 가장 높은 큐에 대기시키고 RR 방식과같이 일정 타임 슬라이스동안 실행 후

완료하지 못하면 그보다 낮은 우선순위 큐로 이동시키고 오래된 프로세스는 에이징 보정을 통해

우선순위를 높이는 방식으로 설계할 수 있다.