프로세스

뚝딱뚝딱·2024년 4월 25일
0

CS study

목록 보기
2/3

프로세스 #2

질문 답변 > 동기식 입출력과 비동기식 입출력

  • 동기식 입출력 ( Synchronous I/O)
    - I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
    • 구현방법 1
      : I/O가 끝날때까지 CPPU를 낭비시킴
      : 매시점 하나의 I/O만 일어날 수 있음
    • 구현방법 2
      : I/O가 완료될 떄까지 해당 프로그램에게서 CPU를 빼앗음
      : I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움
      : 다른 프로그램에게 CPU를 줌
  • 비동기식 입출력(Asynchronous I/O)
    - I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감

Thread

  • A thread(or lightweight process) is a basic unit of CPU utilization

프로세스 하나에 CPU 수행 단위만 여러개 두고 있는 것을 thread라고 한다.

그림1그림2
  • Thread의 구성
    • program counter
    • register set
    • stack space
  • Thread 가 동료 thread와 공유하는 부분(=task)
    • code section
    • data section
    • OS resources

Thread 사용의 장점

  • 다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked(waiting) 상태인 동안에도 동일한 태스크 내의 다른 스레드가 실행되어 빠른 처리를 할 수 있다
  • 스레드를 사용하면 병렬성을 높일 수 있다.(CPU가 여러 개 달린 컴퓨터에서만 얻을 수 있는 장점)(CPU가 하나밖에 없으면 안됨)

프로세스 #3

Single and Multithreaded Processes

Single and Multithreaded Processes

Benefits of Threads

  • Responsiveness(응답성 향상)
    : 답답함 해소 / 원래는 프로세스가 블럭되는데 요청한 그 스레드만 막히고 다른 스레드가 텍스트라도 보여줄 수 있어서 응답성에 있어서의 장점이 생긴다.이미지 파일을 불러오는 동안에 다른 애가 먼저 텍스트 화면에 보여줄 수 있게 됨(비동기식 입출력)

  • Resource Sharing(자원 공유)
    : 똑같은 일을 하는 프로그램이 여러 개 있을 때, 프로그램을 하나만 만들어두고 CPU 수행단위만 여러 개 두게 되면 스레드들이 공유를 통해 자원을 효과적으로 사용할 수 있음

  • Economy(경제성)
    : 문맥 교환(프로세스를 여러개 만드는 것보다, 스레드하나를 생성하고 CPU를 스위치 하는게 오버헤드가 적게 든다)

  • Utilization of MP Architectures
    : 스레드가 여러 개 있을때 서로 다른 CPU에서 병렬적으로 일을 수행할 수 있음 -> 멀티 프로세서 환경에서 효율적으로 실행 가능

Implementation of Threads

1. Kernel Threads

  • threads가 여러 개 있다는 사실을 운영체제 커널이 알고 있음

2. User Threads

  • 라이브러리를 이용해서 지원됨
  • 커널은 모르고 있어서 일반적인 프로세스로 보임
  • 사용자 수준에서 threads 구현하게 됨
profile
나의 행복 만들기

0개의 댓글