[OS]프로세스 계층 구조

2025. 3. 24. 15:48·CS/운영체제

유닉스의 프로세스 계층 구조

유닉스의 모든 프로세스는 init 프로세스의 자식이 되어 트리 구조를 형성한다.

쉘(Shell): 쉘은 텍스트 기반 명령어 해석기로, 사용자가 운영체제에 명령을 전달하는 역할을 한다. 대표적인 쉘로는 bash, zsh, csh 등이 있다.

유닉스 프로세스 계층 구조의 장점

1. 체계적인 프로세스 관리 가능

프로세스 계층 구조를 활용하여 효율적으로 관리할 수 있다.

로그인 프로세스의 경우, 동시 접속한 사용자별로 fork()를 수행하면 되므로 메모리 중복(코드 영역)을 최소화할 수 있다.

여러 작업을 동시에 처리할 수 있다.

2. 프로세스의 재사용이 용이함

로그인 프로세스 종료 시: 새로운 메모리 공간에 bash(쉘) 프로세스를 만들지 않고, 이미 메모리 공간을 차지하고 있는 것을 재사용할 수 있다(exec).

응용 프로그램 실행 시: bash(쉘) 프로세스에서 fork() & exec()를 수행하여 새로운 프로그램을 실행할 수 있다.

3. 계층 구조를 통한 효율적인 자원 회수

프로세스의 계층 구조는 관리 및 호출 주체를 파악하기 용이하다.

부모-자식의 계층 구조에서 부모 프로세스에게 자식 프로세스의 자원 회수 책임을 부여하여 시스템 자원을 효과적으로 관리할 수 있다.

고아 프로세스(Orphan Process)

부모 프로세스가 먼저 종료되어 돌아갈 곳이 없는 프로세스를 의미한다.

계층적 구조에서 따로 떨어져 독립적으로 존재하게 된다.

이러한 프로세스는 init 프로세스가 자동으로 수거하여 관리한다.

좀비 프로세스(Zombie Process)

자식 프로세스가 종료되었음에도 불구하고, 부모 프로세스가 자원을 회수하지 않은 상태의 프로세스를 의미한다.

C 언어에서 exit() 혹은 return()을 사용하여 자식 프로세스가 종료되었음을 알릴 수 있다.

좀비 프로세스는 실행 상태로 진입하지 않으며, 메모리에 남아 있다.

부모 프로세스가 wait() 함수를 호출할 때까지 좀비 상태로 대기한다.

'CS > 운영체제' 카테고리의 다른 글

[OS]멀티 태스크, 멀티 스레드, 멀티 프로세싱  (0) 2025.03.24
[OS]스레드(thread)  (0) 2025.03.24
[OS]프로세스 생성, 복사(fork(), exec())  (1) 2025.03.24
[OS]프로세스 구조, 오버 플로우  (0) 2025.03.23
[OS]문맥 교환  (0) 2025.03.23
'CS/운영체제' 카테고리의 다른 글
  • [OS]멀티 태스크, 멀티 스레드, 멀티 프로세싱
  • [OS]스레드(thread)
  • [OS]프로세스 생성, 복사(fork(), exec())
  • [OS]프로세스 구조, 오버 플로우
yxxjxxeee
yxxjxxeee
  • yxxjxxeee
    공부 일지
    yxxjxxeee
  • 전체
    오늘
    어제
    • study N
      • Framework
        • Spring
      • Language
        • JavaScript
        • C | C++
        • JAVA
        • PHP
      • CS
        • 네트워크
        • 자료구조
        • 데이터베이스
        • 운영체제
      • DBMS
        • MySQL
      • 코딩테스트 N
        • 백준 N
        • 프로그래머스
        • LeetCode
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 쇼핑몰 제작 프로젝트(PHP)
    • github
  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO Designed By 정상우
    Version v4.10.2
yxxjxxeee
[OS]프로세스 계층 구조
상단으로

티스토리툴바