I/O System

  • OS code의 대부분을 차지
  • User의 체감 성능에 가장 중요한 영향을 미침
  • test하기 힘든 영역
  • Types of I/O Devices
    • Block Device
      • 데이터가 fixed-size block에 저장되고, block은 저마다의 주소를 갖는다
      • 이러한 block address를 통해 independently하게 access하여 R/W한다
      • Disk
    • Character Device
      • 데이터가 Stream 형태로 존재, 이미 처리한 데이터를 다시 처리할 수 없음
      • Address가 없다
      • Printer, Network Interface, Mice 등
    • Others
      • Clocks, Memory-Mapped Screen

 

Device Controller

  • 외부에서 들어온 데이터를 변환하여 Disk에 저장
  • H/W적인 error correction을 수행
  • DMA Operation(Direct Memory Access)
    • Device가 직접 Memory에 Access하는 기능
    • I/O Device에 Access할때, Controller에 있는 data register에 I/O Device가 읽거나 쓸 데이터를 저장하고 control register에 수행할 명령을 저장해 작업을 수행
    • 어떻게 Addressing할 것인가?

  • DMA(Direct Memory Access)
    • DMA Controller는 Physical Address를 바로 사용
    • Virtual Address를 사용하려면 MMU(Memory Management Unit)에 접근할 수 있어야 한다
  • DMA Transfer Mode
    • Cycle Stealing : CPU가 Memory에 Access하지 않는 타이밍에만 I/O Device와 Memory사이로 데이터를 옮김
    • Burst Mode : CPU가 한동안 Bus를 사용하지 못하게 제한, I/O Device가 Bus를 독점

 

'Computer Science > Operating System' 카테고리의 다른 글

[개념] Memory Management 1  (0) 2021.08.12
[개념] Virtualization  (0) 2021.08.12
[개념] IPC  (0) 2021.08.12
[개념] Threads and Concurrency  (0) 2021.08.12
[개념] Process Management  (0) 2021.08.12

Process

  • Main Memory에 할당되어 실행 중인 상태인 프로그램
  • job, task 등으로도 불림
  • 상태
    • New, Ready, Running, Waiting, Terminated

Process 상태 전이도

  • PCB(Process Control Block)
    • 프로세스에 대한 모든 정보가 모여있는 곳
    • TCB(Task Control Block)
    • process state, PID, program counter, register값, MMU정보 등이 포함

CPU는 한 프로세스가 종료될 때까지 수행하는 것이 아니라 여러 프로세스를 중간중간 바꿔가며 수행하는데 수행하고 있던 프로세스 정보를 저장하기 위해 필요하다!

 

  • Process Queue
    • 프로세스는 일반적으로 여러 개가 한번에 수행
    • 그에 따른 순서가 필요

Job Queue : 하드디스크에 있는 프로그램이 실행되기 위해 메인 메모리의 할당 순서를 기다림

Ready Queue : CPU 점유 순서를 기다림

Device Queue : I/O를 하기 위한 여러 장치가 있는데, 각 장치를 기다림

각 큐 내부에 저장된 실제 데이터는 각 프로세스의 PCB가 저장되어있다. 

순서를 정해주는 알고리즘이 필요 "스케줄링"

Job Queue - Job Scheduler(Long-term)

Ready Queue - CPU Scheduler(Short-term)

Device Queue - Device Scheduler

 

Multiprogramming

  • 멀티프로그래밍은 단일 프로세서(CPU) 환경에서 여러 개의 프로세스가 동시에 실행되는 것
  • Degree of multiprogramming : 현재 메모리에 할당되어 있는 프로세스 개수
  • 프로세스 종류
    • I/O bound process : 해당 프로세스에서 I/O 작업이 차지하는 비중이 높은 프로세스
    • CPU bound process : 해당 프로세스에서 CPU 작업(계산)이 차지하는 비중이 높은 프로세스
      • Job scheduler는 두 프로세스를 적절히 분배해 메모리에 할당해야 한다!
  • Medium-term scheduler : os가 실행하는 동안 주기적으로 메인 메모리에 있는 전체 프로세스를 검사하여 보조기억장치로 옮길 프로세스를 찾아 옮김("Swapping")
    • Swap device = Backing store ( HD = Backing store + File system)
    • Swap out : main memory → HD / Swap in : HD → main memory
  • Context Switching(문맥 전환)
    • CPU가 한 프로세스에서 다른 프로세스로 옮겨가는 것
    • Scheduler : CPU scheduler에 의해 CPU가 어느 프로세스를 선택할지 결정
    • Dispatcher : 현재 CPU 데이터는 이전 프로세스의 PCB에 갱신하고, 새로 시작되는 프로세스의 PCB 데이터를 CPU로 복원(restore)
    • Context switching overhead : context switching이 발생할 때마다, dispatcher에서 수행하는 작업은 매번 수행하는데 이게 overhead(dispatcher구현에 대해 효율성을 최대로)

'Computer Science > Operating System' 카테고리의 다른 글

[개념] Memory Management 1  (0) 2021.08.12
[개념] Virtualization  (0) 2021.08.12
[개념] IPC  (0) 2021.08.12
[개념] I/O Management  (0) 2021.08.12
[개념] Threads and Concurrency  (0) 2021.08.12

+ Recent posts