• 프로세스(process)
    • 실행중인 프로그램
    • 작업의 단위(unit of work)
    • 시스템은 프로세스의 모음
    • 동시에 실행 가능

 

  • 프로세스의 메모리 레이아웃
    • Text section: 실행코드
    • Data section: 전역변수
    • Heap section: 프로그램 실행시 동적으로 할당되는 메모리
    • Stack section: 함수호출시 임시 데이터 스토리

 

  • 프로그램과 프로세스
    • 프로그램 자체는 프로세스가 아님
    • 실행파일이 메모리에 load될 때 프로그램이 프로세스가 됨
    • ex) 두 프로세스가 동일 프로그램과 관련
      • 두 개의 독립된 실행 순서로 간주됨
      • 창을 여러 개 열어놓는 경우, 같은 프로그램이더라도 여러 개의 독립적인 프로세스를 가짐
      • Text section은 동일, 나머지는 다름
      • 프로세스가 실행 중에 다른 프로세스를 생성할 수 있음

 

  • 프로세스의 상태
    • new: 새로 만들어진 상태
    • ready: cpu를 사용하기 위해 기다리고 있는 상태, 프로세서에게 할당되기 위해 기다리고 있는 상태
    • running: 실행중인 상태
    • waiting: 입출력이 필요하거나 어떤 이벤트가 발생한 경우(파일 접근 등) 기다리는 상태
    • terminated: 실행이 끝난 상태

  • 오직 한 프로세스만이 어떤 프로세스 코어에서 running 상태일 수 있음
  • 많은 프로세스들은 ready 와 waiting 상태에 있음

 

  • Process Control Block(PCB)
    • 프로세스가 가지는 상태정보를 저장하는 자료구조/공간
    • 특정 프로세스 관련 정보들을 포함
      • Process state: new, ready, running, waiting, halted 등
      • Program conter: 다음에 실행해야되는 명령어가 있는 위치(주소값)
      • CPU registers
      • CPU-scheduling information: process priority, pointers to scheduling queues, and any other scheduling parameters
      • Memory-management information
      • Accounting information
      • I/O status information

 

 

  • 프로세스 스케줄링(Process Scheduling)
    • 항상 프로세스들이 실행되도록 하여 CPU 이용률을 최대화함
    • 프로세스 사이에서 CPU core를 자주 switch => user와 program이 interact함
    • core에서 프로그램을 실행하기 위해 실행 가능한 프로세스를 하나 고름
    • 각각의 cpu core에서 한 번에 하나의 프로세스 실행
    • core 수 보다 프로세스 수가 더 많은 경우, 프로세스들이 wait해야 함

 

 

생략......(나중에)

 

 

  • 프로세스간 통신(Interprocess Communication)
    • 여러 프로세스는 OS에서 동시에 실행됨
    • independent
      • 프로세스는 시스템에서 실행중인 다른 프로세스와 데이터를 동유하고 있지 않을 때 independent임
    • cooperating
      • 프로세스는 시스템에서 실행중인 다른 프로세스와 영향을 주고 받을 때 cooperating임
      • 프로세스 협력(cooperating)의 이유: 정보공유 및 데이터 공유, 처리속도 높임, modularity
      • cooperating process는 interprocess communication(IPC) mechacism을 필요로 함

 

  • IPC 모델
    • shared-memory 모델
      • 메모리 영역 공유
      • 빠름
      • 충돌이 일어날 수 있으므로 프로세스들은 동시에 동일 위치에 쓰지 않도록 책임져야 함 (순서 제어 필요)
    • message-passing 모델
      • 메세지를 교환
      • 더 작은 양의 데이터를 교환할 때 유용함
      • 느림

 

 

생략......(나중에)

 

 

  • 스레드(Thread)
    • CPU를 사용하는 기본적인 단위 (즉, CPU 1개에 thread 1개가 올라감)
    • 프로세스 안의 제어 흐름
    • 동일 프로세스에 속하는 다른 thread들과 code, data, resource, file signal를 공유함
    • 한 번에 하나 이상의 task 실행 가능
    • ex) 웹 브라우저에서 하나의 스레드는 이미지나 텍스트를 표현하고, 또 다른 스레드는 네트워크에서 데이터를 검색할 수 있

 

'cs 공부 > 운영체제' 카테고리의 다른 글

ch08. Deadlocks  (0) 2023.07.05
ch06. Process Synchronization  (0) 2023.06.26
ch05. CPU Scheduling  (0) 2023.06.12

+ Recent posts