Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

[CS 이론] 운영체제(3) 본문

CS이론/운영체제

[CS 이론] 운영체제(3)

코드와이 2021. 7. 24. 22:40

 

동기식 입출력 & 비동기식 입출력

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

두 경우 모두 I/O 의 완료는 인터럽트로 알려줌

 

[간단 설명]

Synchronous : 실제 하드웨어를 통해 I/O 작업이 완료된 걸 확인한 후 다음 작업을 하는 것

  • 구현방법 1 을 사용한다면 CPU 와 I/O 장치가 낭비된다.
  • 구현방법 2 는 CPU 와 I/O 를 놀게 두지 않을 수 있다.

Asynchronous : 사용자 프로그램이 I/O 작업을 요청만 해놓고 바로 CPU 자원을 얻어 다음 작업을 하는 것


DMA

모든 작업을 CPU 에서 맡으면 크고 작은 Interrupt 로 너무 비효율적이 된다.

그래서 있는 것이 'DMA'!

 

  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
  • CPU 의 중재 없이 device controller 가 device 의 buffer storage 의 내용을 메모리에 block 단위로 직접 전송
  • 바이트 단위가 아니라 block 단위로 인터럽트를 발생시킴

저장장치 계층 구조

  1. Registers
  2. Cache Memory
  3. Main Memory
  4. Magnetic Disk
  5. Optical Disk
  6. Magnetic Tape

 *Caching

  - 당장 필요한 것만 밑에서 위로 올려서 사용한다. 재사용을 목적으로 빠른 매체를 통해 정보를 복사해 놓는다.

 

위로 갈수록 속도가 빠르고 Cost 가 비싸고 용량이 적고 Volatility(휘발성) 이다.

보통 1~3 이 휘발성 매체, 4~6 이 비휘발성 매체이다.


프로그램 실행(메모리 load)

file 형태로 하드 디스크에 저장되어 있고 그 파일을 실행하게 되면 메모리에 올라가서 process가 된다.

물리적인 메모리에 바로 들어가는 것이 아니라 virtual memory 로 들어가게 된다.

 

프로그램이 실행하게 되면 그 프로그램의 주소 공간이 생성이된다. 그 프로그램만의 독자적인 공간이 만들어지는 것이다. 각 프로그램마다 만들어지는 주소공간은 코드 데이터 스택이라는 구조이다.

 

지금 당장에 필요한 프로그램들만 가상 메모리에서 물리적인 메모리로 이동되어 사용된다.

 

Address transaction : 가상 메모리에 있는 주소가 물리적인 메모리로 이동하면서 바뀌는 것이다.


 

커널 주소 공간의 내용

  • code
    • 시스템콜, 인터럽트 처리 코드
    • 자원 관리를 위한 코드
    • 편리한 서비스 제공을 위한 코드
  • data
    • 운영체제가 사용하는 여러 자원들에 대한 정보(자료구조)
    • PCB(Process Control Block) : 프로그램을 관리하기 위한 자료구조
    • CPU
    • mem
    • disk
  • stack
    • 각 Process 의 커널 스택

 

프로그램의 실행

 

Program begin!!

<user mode> : A 의 주소공간

System call!!

<kernel mode> : kernel 의 주소공간

Return from kernel!!

<user mode> : A 의 주소공간

System call!!

<kernel mode> : kernel 의 주소공간

Program ends!!

 

 

 

 

 

 

 

 

'CS이론 > 운영체제' 카테고리의 다른 글

[CS 이론] 운영체제(2)  (0) 2021.07.15
[CS 이론] 운영체제(1)  (0) 2021.07.14