운영체제 정리-2

beenyyy·2023년 4월 28일

<프로세스 개념>

• 실행중인 프로그램
• 프로세스 상태(모든 정보)를 문맥으로 가진 실행 흐름
• 프로그램은 수동적 / 프로세스는 능동적

<프로그램과 프로세스의 차이 / 스레드>

• 프로그램은 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태
• 프로세스는 실행되고 있는 컴퓨터 프로그램
• 스레드는 프로세스의 코드에 정의된 절차에 따라 실행되는 특정한 수행 경로

<프로세스 상태(context)>

• Memory context: 코드, 데이터(전역변수), 스택(매개변수, 지역변수), 힙
• Hardware context: 레지스터 값들 CPU, I/O
• System context: 테이블 / OS커널이 관리하는 정보 / 시스템에서 부여한 정보들 / PCB, 오픈파일테이블

<Multiprogramming & multiprocessing>

• Uniprogramming(옛날)
-한 번에 하나의 프로세스만 메모리에 저장
• Multiprogramming(메모리 관점)
-메모리에 여러 개의 프로세스
• Multiprocessing(CPU 관점)
-다중 처리. CPU코어가 2개 이상으로 여러 개가 동작.
-다중 처리를 위해 멀티 프로그래밍이 무조건적. (반대는 반드시 성립은 X)

<프로세스 제어 블록> - 커널 영역에 존재

• PCB(process control block)을 프로세스마다 할당
• 프로세스 관련 정보를 저장하는 자료구조 / 식별
• 커널 영역에 생성됨 / 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기됨

PCB에 담기는 정보:
• 프로세스 상태
• 프로그램 카운터-다음에 실행할 명령의 위치 (임시보관)
• 레지스터 (임시보관)
• 프로세스 테이블-메인 메모리에 저장되어 있음
 (실시간 업데이트는 X. 책상에서 벗어날 때 업데이트)











<프로세스 상태>

  1. new 생성
  2. running 실행
  3. waiting 대기 – 자원이나 이벤트 기다림
  4. ready 준비 - CPU에 실행되기 위해 대기
  5. terminated 종료 – 실행 완료

<상태 전환>

Queues 대기열
• Ready queue: 메인 메모리의 모든 프로세스 집합
   - 돌아갈 수는 있는데 CPU 자리가 없는 경우
• Device queue(I/O 대기): 각각의 I/O장치 큐 관리
• Job queue: 시스템의 모든 프로세스 집합
상태 전환
• 다양한 대기열 간의 프로세스 이동

<스케줄러>

✔ Short-term scheduler(or CPU scheduler):
   - 다음에 실행할 프로세스 선택 및 CPU 할당
   - ready 큐 중 선택(OS 역할)
   - 자주 호출됨. 빨라야 함
✔ Long-term scheduler(or job scheduler):
   - ready큐에 어떤 프로세스를 가져올지 선택
   - 드물게 호출됨. 느려질 수 있음
   - 멀티 프로그래밍의 정도를 제어
• 프로세스의 두 가지 종류
   - I/O bound process: 연산보다 I/O에 더 많은 시간 소요. 짧은 CPU burst
   - CPU bound process: 계산에 많은 시간 소비. 긴 CPU burst

<프로세스 전환>

   - CPU가 다른 프로세스로 전환할 때: 상태 저장 및 context switch (문맥을 CPU에)
   - PCB에 표현된 프로세스의 문맥(context)
   - 컨텍스트 전환 시간이 오버헤드. 전환하는 동안 시스템이 작업을 수행하지 않음
   - 하드웨어 성능에 따라 시간이 달라짐

profile
📚beenyyy의 개발공부

0개의 댓글