반응형
What is Process?
Process는 CPU에 의해 처리되는 program이다. = 실행중인 program
Process의 구조
프로세스는 다음과 같은 자원들이 필요하다.
● CPU : PC, SP.. 같은 레지스터들
● Memory의 영역들(낮은->높은 주소순)
- Text 영역 : 프로그램 코드들
- Data 영역 : 전역 변수들
- Heap 영역 : 동적할당된 것들
- stack 영역 : 지역 변수, 매개변수 등
Kernel 4GB |
Stack |
Heap |
bss |
data |
text 0 |
● I/O 정보 : 장치를 포함한 open된 파일들
Process의 상태와 전이
1. new : 프로세스가 막 만들어진 상태
2. ready : 프로세스가 메모리로 올라간 상태
3. running : ready 상태에서 dispatch되어 실제로 돌아가고 있는 상태
4. waiting : I/O 이벤트로 인하여 잠시 대기 상태
5. terminated : running 상태인 프로세스가 종료된 상태
6. suspend : ready나 waiting 상태에서 프로세스를 메모리에서 내린 상태
7. resume : suspend 상태에서 다시 메모리로 올라간 상태
Process Control Block(PCB)
운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳, 프로세스가 완료되면 pcb는 제거됨.
<-- pcb에 있는 정보들 -->
○ 프로세스 현재 상태
○ 포인터
○ 프로세스 고유 식별자
○ 스케쥴링
○ 우선순위
Time sharing
프로세서들이 자원을 공유할 수 있도록 하는 시스템.
프로세서 입장에서 CPU를 독점하는 것처럼 보여줘야 하는게 포인트
● 성능 : 가상화 오버헤드를 어떻게 최소화 할 것인가?
● 제어 : 중간에 인터럽트가 발생할 때 OS는 어떻게 제어할 것인가?-> Solutions
Direct Execution : 운영체제를 거치지 않고 직접 수행, 다만 특정 프로세스가 독점할 수 있음
이러한 단점을 해결할 2가지 방법이 존재!!
1. 자원과 관련된 요청이 오면 OS가 개입
2. 유저모드와 커널모드를 trap를 이용하여 사용
O.S Solution : Context switch를 통한 OS의 개입
* Context switch?
= 프로세스의 마지막 상태(PCB)를 CPU Register에 담고, 꺼낼 때 다시 사용
반응형
'Developer > OS' 카테고리의 다른 글
7. Virtual Memory - 가상메모리 (1) | 2018.12.20 |
---|---|
6. Memory Fragmentation - 메모리 단편화 (0) | 2018.12.18 |
5. Monitor & Deadlock - 모니터, 데드락 (0) | 2018.12.17 |
4. Critical Area - 임계구역이란? (0) | 2018.12.13 |
1. What is Operation System? 운영체제란? (0) | 2018.12.11 |