CS/운영체제

[운영체제] KOCW 반효경 교수님 강의 - 6. Process 2

pythaac 2022. 3. 28. 04:04

  • 프로세스가 입출력 요청을 했을 때
    • 입출력 처리는 운영체제를 통해서 해야하므로, 운영체제에게 입출력 요청을 함
    • 입출력 요청은 시간이 오래 걸림
    • 동기식 입출력
      - 입출력이 끝날 때까지 기다리고 아무것도 하지 말고 기다려야하는 것
    • 비동기식 입출력
      - 입출력이 진행되는 동안, 이 프로세스가 CPU를 잡아서 명령어를 실행하는 것

  • 동기식 입출력 구현방법
    • 동기식 입출력이므로, I/O가 요청된 후 이 프로세스는 일을 못함
    • 구현방법 1
      • I/O가 끝날 때까지 CPU를 가지고 있으면서 기다림
    • 구현방법 2
      • 어차피 일을 못하므로 CPU를 다른 프로세스에게 넘겨줌

  • Thread 개요
    • 프로세스 내부에 CPU 수행 단위가 여러개 있는 경우
    • 같은 일을 하는 프로세스를 여러 개 띄워놓고 싶은 경우
      • 주소 공간 (메모리)를 하나만 띄워 놓고
      • 각 프로세스마다 다른 부분의 code를 실행할 수 있도록 해주면 됨
      • CPU 수행과 관련된 정보만 별도로 가짐
      • PC를 여러 개 두고, 각각 register 상태를 저장
      • 함수 호출 정보를 stack에 쌓아야하므로, 별도의 stack
  • Thread 정리
    • CPU를 수행하는 단위
    • Thread 단위 (Thread마다 독립적으로 가지는 영역)
      • program counter
      • register set
      • stack
    • Thread가 공유하는 부분(=task)
      • code
      • data
      • 각종 자원들
    • 하나의 프로세스 안에 Thread는 여러개, task는 1개

  • Thread의 장점
    • 1. 하나의 프로세스에 thread가 여러 개일 때
      • 하나의 Thread가 blocked 상태일 때도
      • 다른 Thread가 running이 가능하여
      • 응답 시간이 빨라짐
    • 예를 들면, 브라우저에서 웹페이지를 읽어올 때
      • 웹페이지를 읽어오는 작업도 I/O
      • 웹브라우저가 페이지를 읽어오는 동안 화면에 아무것도 보여줄 수 없음
      • 하나의 thread가 사진을 읽어오는 동안
      • 다른 thread가 이미 읽어온 텍스트라도 rendering 해주면
      • 사용자 입장에서는 결과를 더 빨리 볼 수 있음
    • 2. 메모리 절약
      • 프로세스를 하나 더 실행하면
      • 독자적인 메모리 공간이 필요하며, 이를 불필요하게 차지하게됨