어떻게 하면 잘 정리했다고 소문이 날까...

[OS 3편] 프로세스 본문

CS 지식/OS(운영체제)

[OS 3편] 프로세스

정리왕이되자 2023. 2. 17. 11:44

프로세스는 5개의 세부 내용으로 정리합니다.

 

1. 프로세스 구조

2. 커널 주소 공간

3. 사용자 프로그램이 사용하는 함수

4. 프로세스의 실행 모드

 

✔️ 프로그램과 프로세스의 차이

- Program: 디스크에 저장된 실행 가능한 명령어 파일. 수동적인 개체

- Process:메모리에 올려져 있는 실행 중인 개체. 적극적인 개체.

- 프로그램이 실행되면(메모리에 올려지면) 프로세스가 된다.

 

1. 프로세스 구조

  • 프로세스의 구조는 코드+데이터+스택+힙 으로 구성되어 있다.
  • 코드: 작성한 프로그램 함수나 CPU가 수행 가능한 기계어 형태로 변형되어 저장.
  • 데이터: 전역변수, 자료구조 등 프로그램이 사용하는 데이터를 저장.
  • 스택: 지역변수, 함수 리턴 주소등 데이터 임시 저장.
  • : 동적 할당 데이터를 저장.
  • Program Counter: CPU가 수행해야 할 메모리 주소를 담고 있는 레지스터.

 

2. 커널 주소 공간

  • 코드, 데이터, 스택으로 구성됨.
  • 코드: 인터럽트 처리 코드, 시스템 콜 코드, 자원 할당을 위한 코드, 편리한 환경 제공을 위한 코드.
  • 데이터: PCB, 자원 관리 자료구조(CPU, MEM, Disk)
  • 스택: 프로세스 별 스택
    • Why 프로세스별 스택인가?
      • 특권 명령 내에서 다른 특권 명령을 호출할 수 있기 때문이다.

✔️시스템 콜이나 인터럽트 발생으로 CPU의 제어권이 OS로 바뀌는 순간 직전에 수행되던 프로그램의 복귀 정보를 스택이 아닌 OS가 관리하는 PCB에 저장.

 

3. 사용자 프로그램이 사용하는 함수

  • 사용자 정의 함수: 사용자가 직접 정의한 함수
  • 라이브러리 함수: 사용자가 직접 정의하지는 않았지만, 가져다 사용하는 함수. (실행 파일에 포함)
    • 위 두 함수는 프로세스의 주소공간을 사용.
  • 커널 함수: OS 커널의 코드에 정의된 함수
    • 인터럽트 처리 함수, 시스템 콜 처리 함수

4. 프로세스의 실행 모드

  • 사용자 모드와 커널 모드 2개 존재.
  • 커널 함수를 실행할 때, 커널 모드에 있다고 하지만 여전히 사용자 프로세스가 running 중이라고 한다.