Notice
Recent Posts
Recent Comments
Link
어떻게 하면 잘 정리했다고 소문이 날까...
[OS 3편] 프로세스 본문
프로세스는 5개의 세부 내용으로 정리합니다.
1. 프로세스 구조
2. 커널 주소 공간
3. 사용자 프로그램이 사용하는 함수
4. 프로세스의 실행 모드
✔️ 프로그램과 프로세스의 차이
- Program: 디스크에 저장된 실행 가능한 명령어 파일. 수동적인 개체
- Process:메모리에 올려져 있는 실행 중인 개체. 적극적인 개체.
- 프로그램이 실행되면(메모리에 올려지면) 프로세스가 된다.
1. 프로세스 구조
- 프로세스의 구조는 코드+데이터+스택+힙 으로 구성되어 있다.
- 코드: 작성한 프로그램 함수나 CPU가 수행 가능한 기계어 형태로 변형되어 저장.
- 데이터: 전역변수, 자료구조 등 프로그램이 사용하는 데이터를 저장.
- 스택: 지역변수, 함수 리턴 주소등 데이터 임시 저장.
- 힙: 동적 할당 데이터를 저장.
- Program Counter: CPU가 수행해야 할 메모리 주소를 담고 있는 레지스터.
2. 커널 주소 공간
- 코드, 데이터, 스택으로 구성됨.
- 코드: 인터럽트 처리 코드, 시스템 콜 코드, 자원 할당을 위한 코드, 편리한 환경 제공을 위한 코드.
- 데이터: PCB, 자원 관리 자료구조(CPU, MEM, Disk)
- 스택: 프로세스 별 스택
- Why 프로세스별 스택인가?
- 특권 명령 내에서 다른 특권 명령을 호출할 수 있기 때문이다.
- Why 프로세스별 스택인가?
✔️시스템 콜이나 인터럽트 발생으로 CPU의 제어권이 OS로 바뀌는 순간 직전에 수행되던 프로그램의 복귀 정보를 스택이 아닌 OS가 관리하는 PCB에 저장.
3. 사용자 프로그램이 사용하는 함수
- 사용자 정의 함수: 사용자가 직접 정의한 함수
- 라이브러리 함수: 사용자가 직접 정의하지는 않았지만, 가져다 사용하는 함수. (실행 파일에 포함)
- 위 두 함수는 프로세스의 주소공간을 사용.
- 커널 함수: OS 커널의 코드에 정의된 함수
- 인터럽트 처리 함수, 시스템 콜 처리 함수
4. 프로세스의 실행 모드
- 사용자 모드와 커널 모드 2개 존재.
- 커널 함수를 실행할 때, 커널 모드에 있다고 하지만 여전히 사용자 프로세스가 running 중이라고 한다.
'CS 지식 > OS(운영체제)' 카테고리의 다른 글
[OS 6-2편] Process Synchronization (0) | 2023.06.02 |
---|---|
[OS 5편] CPU Scheduling (0) | 2023.03.30 |
[OS 4편] 프로세스 관리 (0) | 2023.03.21 |
[OS 2편] 시스템 구조와 프로그램 실행 (0) | 2023.02.15 |
[OS 1편] 운영 체제(Operating System)란? (0) | 2023.02.15 |