View
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해 - 15. 컨텍스트 스위칭 개념 정리
Melody:) 2021. 12. 2. 13:02컨텍스트 스위칭(문맥교환)
- CPU에 실행할 프로세스를 교체하는 기술
- PCB에 CPU의 PC, SP 정보를 저장, 운영체제 구현에 따라 PCB정보를 메인메모리에 저장
- 실행할 프로세스의 PCB정보를 CPU의 PC, SP에 저장한다.
<과정>
- 실행 중지할 프로세스 정보를 해당 프로세스의 PCB에 업데이트 해서, 메인 메모리에 저장.
- 다음 실행할 프로세스 정보를 메인 메모리에 있는 해당 PCB 정보를 PCB에 넣고, 실행
- 디스패치(dispatch) : ready상태의 프로세스를 running상태로 바꾸는 것.
- 굉장히 짧은 시간 ms단위로, 프로세스 스위칭이 일어난다.
어떻게하면 조금이라도 컨텍스트 스위칭 시간을 짧게 할 수 있을까?
- C언어가 아닌, 어셈블리어로 컨텍스트 스위칭 코드를 작성. 스위칭 속도가 빠른대신 코드의 이식성이 줄어들게된다.
초기 컴퓨터 프로그램들은 어셈블리어로 작성
- 서로다른 CPU 아키텍처가 등장할 때 마다 매번 똑같은 프로그램 작성
- 따라서, 어셈블리어로는 프로그램 작성 속도가 매우 떨어짐(이식성 낮음)
컴파일러 등장
- CPU 아키텍처에 따라서는 컴파일러 프로그램만 만들면 됨, 기존 코드는 재작성할 필요 없음.
- 그러나, 어셈블리어로 작성한 코드보다는 스위칭 속도가 떨어질 수 있음.
어셈블리어로 작성된 리눅스
- 리눅스의 경우 컨텍스트 스위칭 코드는 각각 CPU마다 별도로 존재.
오늘 배운 내용 정리
- 프로세스 구조
- Stack, HEAP, DATA(BSS,DATA), TEXT(CODE)
- PCB
- 프로세스 상태 정보 - PC, SP, 메모리, 스케쥴링 정보 등
- 컨텍스트 스위칭
- 프로세스 상태 정보를 PCB로부터 CPU에 로드하고, 실행
'Computer Science > 운영체제(OS)' 카테고리의 다른 글
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해 - 14. 컨텍스트 스위칭 원리 (0) | 2021.12.02 |
---|---|
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 스택 오버플로우 (0) | 2021.11.27 |
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 힙 (0) | 2021.11.27 |
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 컴퓨터의 구조 (0) | 2021.11.26 |
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-인터럽트 내부 동작 (0) | 2021.11.26 |
reply