[OS] - Process

오동훈·2021년 3월 18일
0

Operating System

목록 보기
1/16
post-thumbnail

1. Process

1.1 Job vs Process

  • 작업(Job) / 프로그램(Program)
    - 실행 할 프로그램(즉, 아직 실행하지 않은 프로그램) + 데이터
    - 컴퓨터 시스템에 실행 요청 전의 상태

  • 프로세스(Process)
    - 실행을 위해 시스템(커널)에 등록 된 작업
    - 시스템 성능 향상을 위해 커널에 의해 관리됨

즉, 작업(Job)에서 메모리를 할당받으면 프로세스(Process)

1.2 프로세스의 정의

  • 실행중인 프로그램
    - 커널에 등록되고 커널의 관리하에 있는 작업
    - 각종 지원들을 요청하고 할당 받을 수 있는 개체
    - 프로세스 관리 블록(PCB)을 할당 받은 개체
    - 능동적인 개체(Active entity)
    - 실행중에 각종 자원을 요구, 할당, 반납하며 진행

  • Process Control Block(PCB)
    - 커널 공간내에 존재
    - 각 프로세스들에 대한 정보를 관리

1.3 프로세스의 종류

구분종류설명
역할시스템(Kernel) 프로세스모든 시스템 메모리와 프로세스의 명령에 의해 엑세스 할 수 있는 프로세스이다.
프로세스 실행 순서를 제어하거나 다른 사용자 및 커널(운영체제) 영역을 침범하게 하지 못하게
감시하고 사용자 프로세스를 생성하는 기능을 한다.
사용자 프로세스사용자 코드를 수행하는 프로세스이다.
병행 수행 방법독립 프로세스다른 프로세스에 영향을 주지 않고, 받지 않으면서 수행하는 병행 프로세스이다.
협력 프로세스다른 프로세스에 영향을 주거나, 영향을 받는 병행 프로세스이다.

2. 운영체제의 기능

  • 프로세스 관리
  • 프로세서 관리 (CPU)
  • 메모리 관리
  • 파일 관리
  • 입출력 관리
  • 보조 기억 장치 및 기타 주변 장치 관리 등

2.1 Process Management

  • 프로세스(Process)
    - 커널에 등록된 실행 단위 (실행중인 프로그램)
    - 사용자 요청 / 프로그램 수행 주체(entity)

  • OS의 프로세스 관리 기능
    - 생성 및 삭제, 상태 관리
    - 자원 할당
    - 프로세스 간 통신 및 동기화
    - 교착상태(dead lock) 해결

  • 프로세스 정보 관리
    - PCB(Process Control Block)

2.2 Processor Management

  • 중앙 처리 장치(CPU)
    - 프로그램을 실행하는 핵심 자원

  • 프로세스 스케쥴링(Scheduling)
    - 시스템내의 프로세스 처리 순서 결정

  • 프로세서 할당 관리
    - 프로세서들에 대한 프로세서 할당(한번에 하나의 프로세스만 사용 가능)

2.3 Memory Management

  • 주 기억장치
    - 작업을 위한 프로그램 및 데이터를 올려 놓는 공간

  • Multi-user, Multi-tasking System
    - 프로세스에 대한 메모리 할당 및 회수
    - 메모리 여유 공간 관리
    - 각 프로세스의 할당 메모리 영억 접근 보호

  • 메모리 할당 방법
    - 전체 적재
    → 장점: 구현이 간단
    → 단점: 제한적 공간
    - 일부 적재
    → 장점: 메모리의 효율적 활용
    → 단점: 보조기억 장치 접근 필요

2.4 File Management

  • 파일: 논리적 데이터 저장 단위
  • 사용자 및 시스템의 파일 관리
  • 디렉토리 구조 지원
  • 파일 관리 기능
    - 파일 및 디렉토리 생성 및 삭제
    • 파일 접근 및 조작
    • 파일을 물리적 저장 공간으로 사상
    • 백업 등

2.5 I/O Management

  • 입출력 과정
    - OS를 반드시 거쳐야 함
		 입출력 요구		입출력 요구 전달
 		----------->             -----------> 
 실행중인 프로세스              운영체제(OS)              입출력 처리 장치
		<----------- 		 <-----------
             실행 가능한 상태로 전이        입출력 완료(인터럽트)

3. 자원(Resource)의 개념

🎈 커널의 관리하에 프로세스에게 할당 및 반납 되는 수동적 개체(Passive entity)

  • 자원의 분류
    - H/W Resources
    Processor, memory, disk, monitor, keyboard, Etc
    - S/W Resources
    Message, signal, files, installed SWs, Etc

  • Process Control Block(PCB)
    - OS가 프로세스 관리에 필요한 정보 저장
    - 프로세스 생성 시, 생성 됨

  • PCB가 관리하는 정보
    - PID(Process Identification Number)
    프로세스 고유 식별 번호
    - 스케쥴링 정보
    프로세스 우선 순위, 등과 같은 스케쥴링 관련 정보들
    - 프로세스 상태
    자원 할당, 요청 정보 등
    - 메모리 관리 정보
    Page table, Segment table 등
    - 입출력 상태 정보
    할당 받은 입출력 장치, 파일 등에 대한 정보 등
    - 문맥 저장 영역(Context save area)
    프로세스의 레지스터 상태를 저장하는 공간 등
    - 계정 정보
    자원 사용 시간등을 관리

  • 단, PCB 정보는 OS별로 서로 다름
  • PCB 참조 및 갱신 속도는 OS의 성능을 결정짓는 중요한 요소 중 하나

지금까지의 내용은 HPC Lab의 강의와 자료를 참조했습니다

profile
삽질의 기록들🐥

1개의 댓글

comment-user-thumbnail
2021년 5월 12일

잘 보고 가요~😉

답글 달기