2021. 2. 22. 22:40ㆍComputer(인강)/운영체제
안녕하세요 bannavi 입니다^ㅅ^
오늘은 컨텍스트 스위칭 원리에 대해 살펴볼거에요
저는 진짜....프로세스 구조가 제일 제일 어려운거같아요..
한국말이지만 외국말인 느낌이랄까요 ㅠ,,ㅠ 후
이것도 듣다보면 괜찮아 지겠지요? 하하..
그럼 오늘도 바로 시작해보겠습니다 :)
PC(Program Counter) + SP(Stack Pointer) 에 주목하자!
Process Control Block(PCB)
(Process Context Block이라고도 함)
1. Process ID - 프로세스마다 id가 있다
2. Register 값(PC, SP 등)
3. Scheduling Info (Process State) - 어떤 info냐면 프로세스 상태가 ready인지 block인지 running인지..
4. Memory Info (메모리 사이즈 limit)
PCB: 프로세스가 진행중인 상태를 캡쳐/구조화해서 저장
컨텍스트 스위칭에서 중요한것은
PC(program counter)와 SP(stack pointer)를 PCB(Process Control Block)에 저장하고,
실제 실행할때 그 해당 값을 CPU의 적합한 register에 덮어 씌워준 다음 실행한다는 것.
그리고 PCB는 프로세스의 상태를 저장하는 데이터 구조로 운영체제단에서 관리하고 있다.
PCB: 리눅스 예
1. Process ID
2. Register 값
3. Scheduling Info (Process State)
4. Memory Info (메모리 사이즈 limit)
중요한 것은 이러한 c structure 형태로 해서
Process ID나 Register 값, Scheduling Info, Memory Info와 관련된 리소스들의 정보들이 들어가 있다..
-> 이것을 운영체제가 관리한다.
정리
프로세스 구조
STACK, HEAP, DATA(BSS, DATA), TEXT(CODE)
PCB
프로세스 상태 정보 - PC, SP, 메모리, 스케쥴링 정보 등
-> PCB가 프로세스 상태 정보를 관리하고 있는데,
이 중, PC(program counter)와 SP(stack pointer)와 같은 레지스터 정보들을 가지고 컨텍스트 스위칭을 한다.
컨텍스트 스위칭은 많이 일어나면 오버헤드가 일어날수도 있어서
c언어가 아니라 어셈블리어로 작성되어있는 경우가 있고
거기서 어셈블리어로 하는것이 pc, sp같은것을 레지스터에 써주는 그런 작업을 하게 된다.
'Computer(인강) > 운영체제' 카테고리의 다른 글
프로세스간 커뮤니케이션 (0) | 2021.02.23 |
---|---|
컨텍스트 스위칭 개념 정리 (0) | 2021.02.22 |
프로세스 구조와 스택 오버플로우 (0) | 2021.02.21 |
프로세스 구조와 힙 (0) | 2021.02.21 |
프로세스 구조와 컴퓨터 구조 (0) | 2021.02.21 |