안녕하세요, 혼자 공부하는 컴퓨터 구조 + 운영체제를 공부하고 학습한 내용을 남깁니다.
- 들어가며
동시에 실행되는 각각의 프로세스의 실행 상태를 볼 수 있다.
이를 계층적으로 관리합니다.
- 공통적으로 실행되는 프로세스 상태
*운영체제마다 조금씩 차이가 있음
- 생성 상태
- 준비 상태
- 실행 상태
- 대기 상태
- 종료 상태
- 프로세스 상태 다이어그램
- 프로세스의 계층 구조
프로세스는 계층적인 구조를 형성합니다.
- 프로세스의 계층 구조
최초의 프로세스는 부팅시 실행되는 프로세스입니다.
- 프로세스의 계층 구조의 예
최초의 프로세스 -> 로그인 프로세스 -> bash 프로세스 -> vim 프로세스
- 최초의 프로세스 (pstree)
systemd: 최초의 프로세스
macos의 경우 launchd 입니다.
- 프로세스 생성 기법
부모 프로세스는 자식 프로세스를 어떻게 생성할까?에서 시작합니다.
복제와 옷 갈아입기 -> 많은 운영체제에서는 복제와 옷 갈아입기라는 과정을 거쳐서 부모 프로세스에서 자식 프로세스가 생성됩니다.
부모 프로세스는 자식 프로세스를 복제를 통해 생성 (fork 시스템 호출)
저장되어 있는 메모리의 위치는 다릅니다.
자신의 메모리 공간을 새로운 프로그램으로 덮어쓰는 시스템 호출입니다.
코드 영역, 데이터 영역은 새로운 프로세스 영역으로 되고 나머지 영역은 초기화됩니다.
fork() 명령어로 자식 프로세스를 다른 메모리에 복제를 하고 나서 (복제)
exec() 명령어를 통해서 새로운 영역을 덮어써서 실행이 됩니다. (옷 갈아입기)
이를 통해서 프로세스의 계층 구조가 만들어진다. 병행 실행되는 구조이다.
이를 Fork-exec 구조라고도 한다.
감사합니다.
참고 url - https://www.youtube.com/watch?v=wz9C_vqME8g&list=PLYH7OjNUOWLUz15j4Q9M6INxK5J3-59GC&index=30
'혼자 공부하는 컴퓨터 구조 및 운영체제 (복습)' 카테고리의 다른 글
[운영체제] 파이썬 코드로 프로세스 확인하기 (1) | 2024.10.18 |
---|---|
[운영체제] 스레드 (1) | 2024.10.18 |
[운영체제] 시스템 호출 직접 관찰하기 (1) | 2024.10.18 |
[운영체제] 운영체제의 큰 그림 (5) | 2024.10.18 |
[운영체제] 운영체제를 알아야 하는 이유 (3) | 2024.10.18 |