[운영체제] 프로세스 정의

임클·2023년 3월 24일
0

23 1학기 CS 전공 수업

목록 보기
10/21

프로세스 정의

process Description and Control

프로세스 관리 :

운영체제가 프로그램을 실행시키고 실행을 제어하는 담당

프로세스가 무엇이고 프로세스 특징

프로세스

프로그램이 실행상태에 있는 것

프로세스 생성은 누가?

사람 : 명령어로 만들수 있음

프로세스 : 프로세스가 다른 프로세스 생성 가능

  • 만든 프로세스를 부모 , 만들어진 프로세스 : 자식
  • 부모-자식 관계 성립

프로그램은 실행되야 되기 때문에 명령어들의 연속으로 구성

프로세스라고 하는 것은 프로그램을 명령어들을 실행하는 것

그때 그때 다른 모습을 보이기 때문에 살아서 움직이는것처럼 보임 == 사람처럼 보임 —> 상태 (States)

사람이 프로그램을 실행시키면 운영체제가 그 프로세스를 생성하는데

프로세스는

실행한 명령어의 코드(Code or Text),

데이터 ,

기타 실행에 필요한 운영체제의 자원의 집합 (Execution context)

Process States (프로세스 상태)

메인 메모리에 ~5000 이전까지가 OS에 들어간다 가정

Dispatcher는 커널 함수 : 실행될 프로세스에게 CPU를 배정해주고 프로세스가 실행되도록 준비해주는 커널 함수 (스케쥴러가 가진 기능 중 일부)

PC : 다음 실행될 명령어의 메모리 주소를 가짐


왼쪽 숫자 : 시간 순서

오른쪽 숫자 : 메모리 주소

Time out : Timesharing 에서 주어진 시간 종료

이후 하늘색 박스 : OS 일함 , Dispatcher 동작 , 다음 동작할 프로세스 결정 준비

입출력 요청 :: 시스템 콜 발생

하얀색 부분 : OS 일 안함 , 사용자프로그램(응용프로그램) 동작

위 사진은 CPU가 한개인 상황으로 가정


프로그램 실행 시키면 프로세스 세계로 들어옴 (Enter)

프로세스 세계 (Dispatch , Pause, not -run ,run)

State transition diagram

  • 상태 : 원 or 타원
  • 라벨 : 상태 이름
  • 화살표 : transition (전이, 변경, 옮김)

프로세스 세계 아웃 (exit)

프로세스 만들어지는 경우

  • 사람이 커맨드 (command)를 치고 실행
    • default : 포그라운드
    • & : 백그라운드
  • Created by OS to provide a service
    • 운영체제가 부팅하면서 서비스 프로세스를 만듬
    • 컴퓨터가 시스템을 관리하는 일들을 운영체제 코드에 직접 다하는게 아니라 핵심적인 기능들만 커널에 구현해둠
    • 덜 중요한 기능(주기적으로 가끔 실행하는 기능)은 서비스 프로세스로 별도의 프로그램으로 만들어둠
    • 운영체제가 부팅할때 실행함.
    • 운영체제가 할 일을 위임한다고 할 수 있음
    • 그래서 주기적으로 실행됨 → Demon process 라고 부름
  • Created by an existing process
    • 이미 있는 프로세스가 자기 자식 프로세스를 생성 (children process)
    • 직접 만드는게 아닌 운영체제에게 요청
    • 운영체제가 부탁을 들어서 운영체제가 만듬
    • 요청은 기존 프로세스가 일을 시키기 위해 , 분담하기 위해 자식 프로세스를 생성

프로세스 종료되는 경우

정상

  • 평범한 완료
    • 마지막 명령까지 다 돌고 종료
    • exit 시스템 콜 호출됨
    • 운영체제에게 종료 요청
  • 부모 프로세스 요청
    • 부모가 운영체제에게 자식을 종료해달라고 요청
    • 부모-자식 관계에서 부모만 가능

비정상

  • 비정상적인 경우 (산술에러 , 입출력 실패, 정의 되지 않은 명령어 호출시, 기타 등등)
  • Protection error : 허용되지 않은 메모리에 접근시
profile
iOS를 공부하는 임클입니다.

0개의 댓글