CS study/운영체제 - JSCODE 스터디
[2주차 스터디 노트] 쓰레드, 멀티 프로세스/쓰레딩, 프로세스 상태 변화
블랑v
2023. 11. 15. 23:45
프로세스 상태
프로세스의 수행 상태 변화는 운영 체제의 프로세스 관리의 중요한 부분이다.
운영 체제는 프로세스의 생명 주기 동안 여러 가지 상태를 가지며, 프로세스의 현재 상황과 다음에 수행해야 할 작업을 나타낸다. OS에서는 이 상태를 PCB를 통해 인식하고 관리한다.
- 새로 생성된 상태 (New)
- 프로세스가 생성되고 초기화되는 단계이다.
프로세스는 프로세스에 필요한 초기 리소스와 설정을 할당받있지만, 아직 실행 준비가 완전히 되지 않은 상태.
-> 프로세스가 필요한 모든 리소스를 할당받고, 실행을 위한 준비가 완료되면 "준비 상태"로 전환된다.
여기서 할당받을 리소스들은 다음과 같다.
- 프로세스 식별자 (PID):
- 프로세스 제어 블록 (PCB):
- 프로세스 실행을 위한 최소한의 메모리 공간
- 기타 초기 설정(운영체제마다 상이)
이걸 다 받으면 준비 상태로 전환된다.
- 프로세스가 생성되고 초기화되는 단계이다.
- 준비 상태 (Ready)
- 프로세스가 CPU를 할당받기 위해 대기하는 상태이다.
이 상태의 프로세스는 실행을 위해 필요한 모든 리소스를 할당받았으며, CPU를 제외한 모든 것이 준비된 상태.
- 프로세스가 CPU를 할당받기 위해 대기하는 상태이다.
- 실행 상태 (Running)
- 프로세스가 CPU를 할당받아 명령어를 실행하고 있는 상태(실제로 계산을 수행하거나, 작업을 진행)
- 프로세스는 일정 시간만 실행되며, 할당 시간을 전부 소모하면 다시 준비 상태로 전환된다.
- 만약 IO 작업 등이 발생한다면 대기 상태로 전환된다.
- 대기 상태 (Waiting or Blocked)
- 프로세스가 특정 이벤트(I/O 작업의 완료) 또는 자원의 가용성을 기다리는 상태.
- 이 상태에서 프로세스는 CPU를 사용할 수 없으며, 필요한 이벤트나 자원이 준비될 때까지 대기한다.
- (동기 Blocking 방식을 사용한다면 프로세스가 이 상태로 진입했다.)
- 종료 상태 (Terminated or Exit)
- 프로세스가 실행을 완료하고 시스템에서 제거되는 상태이다.
- 이 상태에서 프로세스는 모든 작업을 마치고, 사용하던 자원을 운영 체제에 반환한다.
프로세스 생성 기법
fock() 명령어를 통해 새로운 프로세스를 호출할 수 있다.
질문 목록
- 프로세스 수행 상태 변화 과정에 대해 설명해주세요.
- fork() 명령어에 대해 설명해주세요.
- 쓰레드에 대해 설명해주세요.
- 프로세스와 쓰레드가 어떤차이가 있는지 예시를 들어 설명해주세요.
- 쓰레드의 메모리 공간(스택, 데이터, 코드)에대해 설명해주세요.
- 쓰레드 제어블록(TCB)에 대해 설명해주세요.
- 멀티 프로세스에 대해서 설명해주세요.
- 멀티 쓰레딩에 대해서 설명해주세요.
- 프로세스끼리 협력하는 방법에 대해서 설명해주세요.
참고자료
- 혼자 공부하는 컴퓨터구조 + 운영체제
프로세스 상태
https://cornswrold.tistory.com/124
프로세스 생성 기법
https://velog.io/@ckstn0777/OS-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4
.