CS/운영체제

Process & Thread 1

i'mMolly 2023. 7. 22. 15:25

1. process를 간단히 설명해 주세요.

실행파일(program)이 memory에 적재되어 CPU를 할당받아 실행되는 것을 process라고 합니다.

 

 

2. process의 memory영역(code, data, stack, heap)에 대해서 설명해 주세요.

프로세스가 운영체제에서 할당받는 메모리 공간은 code, data, stack, heap 영역으로 구분됩니다.

  • code 영역은 실행한 프로그램의 코드가 저장되는 메모리 영역입니다.
  • data 영역은 프로그램의 전역 변수static 변수가 저장되는 메모리 영역입니다.
  • heap 영역은 프로그래머가 직접 공간을 할당(malloc)/해제(free) 하는 메모리 영역입니다.
  • stack 영역은 함수 호출 시 생성되는 지역 변수매개 변수가 저장되는 임시 메모리 영역입니다.

 

 

3. ⭐⭐⭐⭐ Multi process에 대해서 설명해 주세요.

Multi process란 2개 이상의 process동시에 실행되는 것을 말합니다. 동시에라는 말은 동시성(concurrency)과 병렬성(parallelism) 두 가지를 의미합니다.

 

동시성CPU core가 1개일 때, 여러 process짧은 시간동안 번갈아 가면서 연산을 하게 되는 시분할 시스템(time sharing system)으로 실행되는 것입니다.

 

병렬성CPU core가 여러개일 때, 각각의 core가 각각의 process를 연산함으로써 process가 동시에 실행되는 것입니다.

 

 

4. process의 context는 무엇인가요?

context란 process가 현재 어떤 상태로 수행되고 있는지에 대한 정보입니다. 해당 정보는 PCB(Process Control Block)에 저장을 합니다.

 

 

5. PCB(Process Control Block)에 저장되는 것들은 무엇이 있나요?

PCB는 운영체제가 process에 대해 필요한 정보를 모아놓은 자료구조입니다. PCB에는 일반적으로 다음과 같은 정보가 포함됩니다.

  • Process number
  • Process state
  • Program Counter (PC), 레지스터
  • CPU 스케쥴링 정보, 우선순위
  • 메모리 정보 (해당 process의 주소 공간 등)

 

 

6. Context switch에 대해서 설명해 주세요.

Context switch란 한 프로세스에서 다른 프로세스로 CPU 제어권을 넘겨주는 것을 말합니다.

이 때 이전의 프로세스의 상태PCB에 저장하여 보관하고 새로운 프로세스PCB를 읽어서 보관된 상태를 복구하는 작업이 이루어집니다.

 

 

7. process의 state에는 어떤 것들이 있나요?

프로세스는 실행(running), 준비(ready), 봉쇄(wait, sleep, blocked) 세 가지 상태로 구분됩니다.

실행 프로세스가 CPU를 점유하고 명령을 수행중인 상태
준비 CPU만 할당받으면 즉시 명령을 수행할 수 있도록 준비된 상태
봉쇄 CPU를 할당받아도 명령을 실행할 수 없는 상태 - ex. I/O 작업을 기다리는 경우 등