OS-1-Introduction

dragonappear·2021년 3월 7일
0

Operating System

목록 보기
1/6

# outline:

  • Operating systems definitions
  • Computer systems organization
  • Computer system architecture
  • Operating systems structure
  • Operating systems operation

Operating systems definitions:

  • 컴퓨터 하드웨어(CPU,Memory,storage,I/O device)를 관리한다.
    -하드웨어에 대한 접근을 관리한다.
    -Accounting: OS는 하드웨어 사용 통계자료를 제공한다.(작업관리자)
    -error detection

  • 프로그램 실행을 제어한다.
    -scheduling: 타임라인에 프로세스를 할당
    -error reporting: (ex:segmentation fault:메모리 엑세스 잘못했을때)

  • OS의 위치: between application programs(ex:game) and system programs(작업관리자,윈도우탐색기)

    출처: Abraham Silberschatz, Greg Gagne, Peter B. Galvin『Operating System Concepts』(2019)

  • OS는 효율적이고 공평한 하드웨어 사용을 위해 충돌하는 프로세스들의 요청들에 대한 하드웨어 할당을 결정한다.

  • OS는 에러와 잘못된 컴퓨터 시스템 사용을 방지하기 위해 프로그램의 실행을 제어한다.

Computer systems organization


출처: Abraham Silberschatz, Greg Gagne, Peter B. Galvin『Operating System Concepts』(2019)

  • ★★★ 세가지 기본 원칙 ★★★
    -computer system i/o operation
    -i/o structure
    -interrupt
    -Storage structure
  • computer system i/o operation:
    -어떠한 장치던지 각각의 device controller가 있고, controller에는 local buffer를 가지고 있다.
    -I/O: 메인 메모리와 local buffer 사이에 data의 이동
    -I/O 디바이스와 CPU는 동시에 실행할수 있다 -> DMA(direct memory access)
    -디바이스 컨트롤러는 operation이 끝났음을 cpu에게 interrupt를 발생시켜 알린다.
  • I/O structure:
    -I/O transactions은 bus를 통해 이루어진다.(address,data,control signals을 이동시키는 병렬 와이어)
    -DMA: CPU의 개입없이 디바이스 독자적으로 메인메모리와 I/O transaction을 수행하는 프로세스 -> CPU의 멀티프로세싱 기능을 가능하게 해줌.
    -interrupt: 디바이스의 DMA가 끝났음을 CPU에게 알려주는것


출처: Abraham Silberschatz, Greg Gagne, Peter B. Galvin『Operating System Concepts』(2019)

  • Interrupt의 과정:
    1. 디바이스 A가 CPU에게 interrupt를 보냄.
    2. CPU는 실행중인 instruction을 중지하고, 중단된 instruction의 주소를 저장한다.
    3. interrupt vector(ISR의 주소를 담고있는 테이블[디바이스-ISR의 주소])을 확인한후 A의 ★★★ISR(interrupt service routines=함수(중간에 실행되었기 때문에 간결하고 빠르게 실행되도록 코드화되어야함))을 실행(분기)한다.
    4. ISR이 끝나면 중단되었던 instruction을 다시 실행한다.

출처: Abraham Silberschatz, Greg Gagne, Peter B. Galvin『Operating System Concepts』(2019)

  • Difference between interrupt and trap:
    -interrupt: caused by events external to the processor -> asychronous
    -trap: caused by events that occur as a result of executing an instruction -> synchronous.
    • system call: application program이 하드웨어를 사용하기 위해 OS에게 요청하는 메커니즘 (API)
    • segmentation fault: exception (ex: 메모리접근에러)
  • Storage structure:
    1. Main memory(volatile): DRAM, CPU와 직접적인 연결이 되어있다.
    2. Secondary storage(nonvolatile): Magnetic disk(HDD,SSD)
    3. Tertiary storage: back-up용
  • Caching, prefetching 기법:
    - storage은 cost와 performance가 trade-off 관계이다.
    - caching 기법: 용량이 작지만 접근이 빠른 storage를 cache memory로 사용하는것.
    - prefetching 기법: 미래에 읽어들일 디스크에 있는 data를 미리 memory에 올리는것.
  • Multiprocessor:


출처: Abraham Silberschatz, Greg Gagne, Peter B. Galvin『Operating System Concepts』(2019)

Operating systems structure

  • multiprogramming(multi-tasking):
    - CPU scheduling: cpu가 실행할 프로세스를 결정하는것.
    - job scheduling: 메모리에 어떤 프로세스를 올릴것인지 결정하는것.
    - switching: timeline에 있는 프로세스간의 이동 => context switching.
    - Swapping: 메모리공간이 부족할때, 반드시 실행해야할 프로세스를 디스크에서 메인 메모리에 올리는것(swapping in), swapping in을 위해서 다른 프로세스가 메모리에서 쫓겨나는것(swapping out)
    - virtual memory: (추상적인 개념)메인 메모리에는 올려지지 않았고 현재 실행되고 있는 프로세스의 집합이 사용하고 있는 메모리 공간. <-> pysical memory(메인메모리 공간)
    - process: 현재 실행중인 프로그램
  • dual-mode operation:
    - usermode and kernel mode
    • 하드웨어에 있는 A mode bit가 0이면 kernel mode, 1이면 usermode.
    • dual-mode operation protect operating system from errant user( privileged instruction은 kernel 모드에서만 실행되기 때문이다.)


출처: Abraham Silberschatz, Greg Gagne, Peter B. Galvin『Operating System Concepts』(2019)

What to learn?

1. Process management:

  • process concept(3장):
    - CPU의 속도가 너무 빨라서, process 간에 context switch하는것을 알아차릴수없다.
    - 눈으로 보았을때 하나의 process만 실행하는것처럼 보인다.

  • Thread and concurrency(4장):
    - 멀티프로세스를 실행하였을때 발생하는 context switch와 프로세스를 유지시키기 위해 발생하는 overhead를 줄이기 위해 thread의 개념이 발생하였다.

  • Scheduling(5장):
    - 다양한 프로세스 중에서 cpu가 다음에 실행할 process를 선택하는것

  • Synchronization(6장,7장):
    - OS는 좋은 결과를 만들기 위해 프로세스를 협력시켜야한다.

    • race condition(잘못된 결과를 출력하는것) ex) 2+3=4 를 해결하기 위해 semaphore, critical section 이 발생하였다.
  • Deadlock(8장):
    - 만약 프로세스 간의 coordination이 안되면, 프로세스가 실행되지 않는다.

2. Memory management:

  • 명령어가 실행되기 위해서는 메모리에 있어야한다.
  • 하지만 메인메모리의 용량은 정해져있기 때문에 몇몇 프로세스는 virtual memory에 저장되어있다. -> virtual memory size > physical memory size
  • virtual memory에 있는 프로세스를 실행하기 위해서는 -> OS가 실제주소로 address translation을 해줘야한다.
    출처: Abraham Silberschatz, Greg Gagne, Peter B. Galvin『Operating System Concepts』(2019)
    int * a;
    printf("%d",&a);
    를 실행하였을때 virtual address(!=physical memory)가 출력된다.


출처: Abraham Silberschatz, Greg Gagne, Peter B. Galvin『Operating System Concepts』(2019)

address translation은 execution time때 발생하기 때문에 변환이 매우 빠르게 이루어져야한다.
그래서 CPU는 MMU(memory management unit)(ex:hardware)에게 도움을 받는다.


출처: Abraham Silberschatz, Greg Gagne, Peter B. Galvin『Operating System Concepts』(2019)

3. Mass storage structure(HDD,SDD):

  • HDD: seek time이 오래걸린다.
  • NVM(non volatile memory): 호스트 pc에 어떻게 연결되어있는지에(sata,nvme) 따라서 nvm이 interface를 사용하는 것이 결정된다.

4. File system:

0개의 댓글