One_Blog

프로세스 [운영체제 수업] 본문

운영체제

프로세스 [운영체제 수업]

0xOne 2023. 3. 16. 14:11
728x90

날짜 : 2023년 3월 16일

 

오늘 수업 주제

: 프로세스





오늘 배운 내용 요약

:

프로세스의 구조

프로세스 실행 중 생성 시스템 호출을 이용하여 새로운 프로세스 생성 가능.

프로세스 생성 순서로 부모 - 자식 관계 형성 (계층 구조)

 

프로세스 생성 세부 작업 순서

->프로세스에 프로세스 식별자 할당

-> 주소 공간과 PCB 공간 할당

-> PCB 초기화

-> 링크 걸기

-> fork()를 이용하여 자식 프로세스 생성

 

자식 프로세스 생성 시

복사 프로세스 = 자식

복사 원본 프로세스 = 부모

복사를 할 때, 주소 공간과 PCB의 내용을 전부 복사함.

exec()를 통해 원하는 값으로 덮어씀.

 

Init 프로세스 = 운영체제 실행 시 처음 생성되는 프로젝트

-> 코드,데이터 영역 생성 + 힙, 스택 영역 생성 + PCB 제작



프로세스의 종료

  • 프로세스가 마지막 명령 실행 후 종료 / 삭제 요청
  • about()함수로 프로세스 종료
  • 자식 프로세스가 종료되지 않으면 기다림

 

종료 상황

->자식 프로세스가 할당된 자원을 초과하여 사용할 때

->더 이상 할당된 작업이 없을 때

 

프로세스의 비정상적 종료

  • 부모가 먼저 종료되거나 자식 프로세스가 비정상적인 종료가 됐을 경우
  • 좀비 프로세스
  • 메모리를 많이 차지함.
  • 컴퓨터가 느려짐.
  • 해결은 재부팅

 

프로세스의 제거

-> 프로세스 파괴

-> 사용하던 자원 반환

-> PCB 회수

-> 자식 프로세스는 부모 프로세스 삭제 시 자동 제거

-> 프로그램 변경 사항은 디스크에 저장

 

프로세스의 중단과 재시작

->실행 중인 프로세스를 재시작해서 시스템 부하를 줄임

->다중 프로그래밍 환경에서의 중단은 입출력 요구 또는 자원 부족 상태

-장시간 중단 시 할당된 자원 반환

 

프로세스 스케줄러

PCB에 우선순위를 사용하여 준비큐에 있는 프로세스를 처리한다.

준비 상태에 있는 프로세스는 입출력중심 프로세스와 CPU 준심 프로세스로 구분한다.

 

입출력 중심 : 속도가 느림 / 빠른 응답 요구에 높은 우선 순위 / CPU를 짧게, 자주 사용

CPU 중심 : CPU를 길게 사용, 사용 횟수를 줄여서 균형을 유지한다.