[운영체제] 8.Process Management 1 - 프로세스의 생성과 종료

2023. 6. 25. 00:10·Computer Science/운영체제
목차
  1. Process 의 생성 
  2. 프로세스 종료 
728x90

Process 의 생성 

  • 부모 프로세스가 자식 프로세스를 생성한다. 
  • 프로세스들은 트리 구조 형성하게 된다.  
  • 프로세스는 자원을 필요로 한다. 자원은 운영체제로부터 받으며, 부모 프로세스와 자식 프로세스가 일반적으로 공유하지 않는다. 프로세스들끼리는 별개의 프로세스이므로 자원을 위해 경쟁을 하게 되는 것이 일반적이기 때문이다. 
  • 수행 
    - 부모와 자식이 공존하며 수행하는 모델 
    - 자식이 종료될 때가지 부모가 기다리는 모델
  • 주소 공간 
    - 자식은 부모의 공간을 복사한다. : process의 문맥 (주소공간인 코드 데이터 스택, PC)을 그대로 복사한다. 
    - 마치 과제할 때 기존에 레포트 템플릿이 있으면 복사하고 일부 수정해서 쓰는 것처럼, 효율적일 것이다. 
    - 자식은 그 공간에 새로운 프로그램을 올린다. 
  • UNIX 예시
    - fork() 시스템 콜이 새로운 프로세스를 생성한다. 
    - fork 다음에 이어지는 exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올림 
  • 자원의 공유 
    - 부모와 자식이 모든 자원을 공유하는 모델 
    - 일부를 공유하는 모델 
    - 전혀 공유하지 않는 모델
    - 부모와 자식의 내용이 완전히 똑같다면, 공유할 수 있을 것이다 그렇지만 각자 실행하면서 stack 에 쌓이는 함수의 실행 순서가 달라지는 등, 문맥이 달라질 수 있다. 이런 경우 각자 자원을 사용할 필요가 있다. write 가 발생했을 때 (내용이 바뀔 때) copy하겠다는 뜻 (Copy-on-Write 기법)

프로세스 종료 

  • 프로세스가 마지막 명령을 수행한 후 운영체제에게 이를 알려준다. (exit() 시스템 콜)
    - 자식프로세스는 부모프로세스에게 output data를 보낸다. 

  • 부모 프로세스가 자식의 수행을 강제 종료시키는 경우 (abort) 
    - 자식이 할당할 수 있는 자원의 한계치를 넘어서는 경우 
    - 자식에게 할당된 태스크가 더이상 필요하지 않은 경우 
    - 부모가 종료 exit 하는 경우, 운영체제는 자식 프로세스들이 더 이상 수행되도록 두지 않는다. 
728x90

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

[운영체제] 9 (2) Process Management  (0) 2023.06.25
[운영체제] 9. 시스템 콜의 종류 - fork() , exec(), wait(), exit()  (0) 2023.06.25
[운영체제] 7. Process 3 - Thread의 장점 2  (0) 2023.06.18
[운영체제] 6. Process (2) - Thread와 Thread의 장점  (0) 2023.06.18
[OS] 운영체제 6 Process Synchronization & Race Condition  (0) 2023.05.28
  1. Process 의 생성 
  2. 프로세스 종료 
'Computer Science/운영체제' 카테고리의 다른 글
  • [운영체제] 9 (2) Process Management
  • [운영체제] 9. 시스템 콜의 종류 - fork() , exec(), wait(), exit()
  • [운영체제] 7. Process 3 - Thread의 장점 2
  • [운영체제] 6. Process (2) - Thread와 Thread의 장점
minjiwoo
minjiwoo
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minji's engineering noteData Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minjiwoo
minji's engineering note
minjiwoo
전체
오늘
어제
  • 분류 전체보기 (613)
    • Data Engineering (42)
      • Apache Spark (11)
      • Databricks & Delta Lake (9)
      • Airflow (3)
      • SQL (6)
      • Trouble Shooting (2)
      • Hadoop (2)
      • MLOps (1)
    • Cloud Engineering (104)
      • AWS (23)
      • Linux 🐧 (29)
      • Docker 🐳 (21)
      • Kubernetes ⚙️ (20)
      • Ansible (10)
    • Computer Science (87)
      • 네트워크 (9)
      • 운영체제 (25)
      • 정보처리기사 (48)
      • CS 기술 면접 스터디 (3)
    • Programming Languages (27)
      • Python (17)
      • C와 C++ (10)
    • Backend (5)
      • Django (2)
    • 프로젝트 (2)
      • 테크포임팩트 (2)
    • iOS (11)
      • 레이블러리 (2)
    • Algorithm (PS) (275)
      • LeetCode (6)
    • 개발일기 (30)
      • 내돈내산 후기🎮 (3)
      • 개발자 취준생 (5)
      • Today I Learned (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Hi there

인기 글

태그

  • 운영체제
  • BFS
  • 데이터브릭스
  • 스파크
  • 카카오코딩테스트
  • EC2
  • dfs
  • 알고리즘
  • 클라우드
  • 빅데이터
  • 프로그래머스
  • 데이터엔지니어
  • docker
  • 데이터엔지니어링
  • dp
  • Leetcode
  • Databricks
  • 파이썬
  • ansible
  • linux
  • python
  • 리눅스
  • Swift
  • 쿠버네티스
  • 백트래킹
  • 코딩테스트
  • SPARK
  • Kubernetes
  • 백준
  • AWS

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
minjiwoo
[운영체제] 8.Process Management 1 - 프로세스의 생성과 종료
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.