View

컨텍스트 스위칭(문맥교환)

  • CPU에 실행할 프로세스를 교체하는 기술
  • PCB에 CPU의 PC, SP 정보를 저장, 운영체제 구현에 따라 PCB정보를 메인메모리에 저장
  • 실행할 프로세스의 PCB정보를 CPU의 PC, SP에 저장한다.

<과정>

  1. 실행 중지할 프로세스 정보를 해당 프로세스의 PCB에 업데이트 해서, 메인 메모리에 저장.
  2. 다음 실행할 프로세스 정보를 메인 메모리에 있는 해당 PCB 정보를 PCB에 넣고, 실행
  • 디스패치(dispatch) : ready상태의 프로세스를 running상태로 바꾸는 것.
  • 굉장히 짧은 시간 ms단위로, 프로세스 스위칭이 일어난다.

어떻게하면 조금이라도 컨텍스트 스위칭 시간을 짧게 할 수 있을까?

  • C언어가 아닌, 어셈블리어로 컨텍스트 스위칭 코드를 작성. 스위칭 속도가 빠른대신 코드의 이식성이 줄어들게된다.

초기 컴퓨터 프로그램들은 어셈블리어로 작성

  • 서로다른 CPU 아키텍처가 등장할 때 마다 매번 똑같은 프로그램 작성
  • 따라서, 어셈블리어로는 프로그램 작성 속도가 매우 떨어짐(이식성 낮음)

컴파일러 등장

  • CPU 아키텍처에 따라서는 컴파일러 프로그램만 만들면 됨, 기존 코드는 재작성할 필요 없음.
  • 그러나, 어셈블리어로 작성한 코드보다는 스위칭 속도가 떨어질 수 있음.

어셈블리어로 작성된 리눅스

  • 리눅스의 경우 컨텍스트 스위칭 코드는 각각 CPU마다 별도로 존재.

오늘 배운 내용 정리

  1. 프로세스 구조
    • Stack, HEAP, DATA(BSS,DATA), TEXT(CODE)
  2. PCB
    • 프로세스 상태 정보 - PC, SP, 메모리, 스케쥴링 정보 등
  3. 컨텍스트 스위칭
    • 프로세스 상태 정보를 PCB로부터 CPU에 로드하고, 실행
Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31