[OS] Operating Systems Introduction

김수환·2023년 4월 10일
0

Operating Systems

목록 보기
1/2

💻 Operating systems defintion

OS도 main함수가 있는 하나의 프로그램이다.
computer H/W를 관리하고 프로그램의 실행을 제어하는 역할을 한다.

OS 가 관리하는 H/W

  1. CPU
  2. memory
  3. storage(HDD 등)
  4. IO device

OS 의 역할

  1. I/O device에 접근
  2. 파일에 접근
  3. accouting ( 통계정보를 보여줌 )
    [example]
    • 작업관리자: cpu performance(frequency를 통해)를 볼 수 있음.
  4. Error detection H/W 잘못 사용할 경우 에러를 출력

프로그램 실행제어

  1. scheduling (프로그램 실행순서 결정)
  2. Error reporting

OS 의 위치

app <-OS-> H/W

  • 하드웨어와 응용프로그램 사이에 위치한다.
  • OS는 하드웨어에 접근하기 위한 유일한 방법이다.
  • 응용프로그램이 하드웨어에 대해 잘못된 접근을 하지 못하도록 방어한다.

OS는 HW를 효율적으로 관리한다.

  1. 프로그램을 실행시키고 user의 문제를 더 쉽게 해결 해준다.
  2. computer system을 더 효율적으로 사용하게끔 한다.
  3. 컴퓨터 HW를 효울적으로 사용한다.
  • [Example]
    프로그램 A,B,C,D
    위 그림에서 비효율적인 방식을 사용하면 C,D 프로그램의 응답이 없음.

그래서 OS는 뭐한다고?

  • OS는 resource(H/W) 할당을 해준다.
    모든 자원을 관리함
    • cpu time, memory space, file-storage space, I/O devices
    어떻게 하드웨어를 할당할 지 결정하고 요청 충돌과정 (request conflicting) 에서 효율적이고 공평하게 자원을 관리한다.
  • OS 는 제어 프로그램이다.
    프로그램의 실행을 제어하고 에러를 방지하는 역할을 한다.
  • Kernel
    OS중에서도 핵심적인 부분
    HW관리

💻 Computer systems organization

OS는 HW를 관리한다.
컴퓨터 시스템의 종류

  • personl computer
  • large sclae system (servers)
  • Hand-held system (smart phone)

컴퓨터 시스템 구조의 4가지 원칙

  • Computer System I/O operation
  • I/O structure
  • Interrupt
  • Storage structure

+ multiprocessor systems

I/O operation

I/O(Input/Output) operation : 컴퓨터 시스템에서 입출력 작업을 수행하는 것

  1. 컴퓨터 시스템에서 입출력 요청이 발생
  2. I/O controller가 해당 요청을 받고, 요청된 작업을 처리하기 위해 Device와 통신
  3. Device는 요청된 작업을 처리하고, 결과를 I/O Controller에게 반환
  4. I/O controller는 결과를 시스템 메모리에 저장하거나, 해당 결과를 보내는 작업을 수행
  • device controller는 디바이스 마다 다르다.
    각각의 local buffer를 갖고 있음
  • I/O : local buffer 와 메모리간의 data 이동
  • device controller는 interrupt 발생 시 I/O operation이 끝났음을 알린다.

I/O structure

I/O transactions은 bus를 통해 수행된다.

  • BUS : 주소, data, control signal을 나르는 여러개의 wire
    I/O device와 memory를 연결하는 매체 -> bus transaction(DMA)이 필요
  • system bus : cpu와 i/o bridge 연결
  • memory bus : i/o bridge와 메모리 연결
  • I/O bus : 여러 device 공유

I/O transaction : system과 주변장치간의 data 전송
Bus transaction : system bus 상에서 주변장치와의 data 전송(DMA)

DMA : Directed Memory Access

Device가 cpu 개입 없이 Bus transaction 읽기를 수행

  • CPU 간섭없이 메모리에 접근
  • CPU는 다른 일을 할 수 있다.

DMA operation 수행 과정

1. CPU에 DMA 전송 요청
2. CPU DMA컨트롤러 에게 데이터의 시작주소, 크기, 전송방향 알려줌
3. DMA컨트롤러 메모리에 접근. 이때, CPU는 다른 작업 수행 가능
4. 전송이 완료되면 DMA컨트롤러는 CPU에 Interrupt 발생시켜 전송이 완료 되었음을 알림
5. Interrupt를 받은 CPU는 Interrupt Vector에서 ISR 찾아서 수행함

Interrupt

CPU에 보내는 notification

  • system call
  • segmentation fault

Interrupt를 사용하려면 Interrup Handler를 kernel에 저장해둬야함

[Example]
- Interrupt source : A, B, C, ...
- Interrupt service routine (ISR) : ISRA, ISRB, ...
  • Interrupt handler 주소를 담고 있는 table을 Interrupt vector라고 함. 위의 ISR

  • Interrupt 를 유발하는 것을 source라고 함 (HW, SW에 상관 없이) 위의 A,B,C ...

    	A라는 Interrupt 발생 
    	-> Immediately & Unconditionally ISRA 실행 해야 함(즉각적으로, 무조건적으로)
    	ISRA 실행전에 실행중이던 context를 저장해둬야함.
    	-> 이 프로세스에서 다른 프로세스로 수행을 옮김(context switch)

Interrupt 개요도


Interrupt는 매우 자주 발생한다.

  • timer라는 device의 interrupt handler는 10ms마다 한번 실행된다. (in Linux)

  • 2 -> interrupt 발생 -> 1 : ISRA(Interrupt Service Routine of A) -> 2 : 기존 프로세스

Interrupt VS Trap

  • Interrupt : 비동기화. 외부에서(from HW) 프로세스에 event 발생

  • Trap : 동기화. instruction의 실행결과로 발생 (from SW)
    - System call
    - Segmentation Fault
    - exception

    	*Os 에서는 System call이 발생하면 trap 처럼 관리

Storage structure

Primary Storage(메인 메모리) : CPU가 접근 가능한 storage

  • 접근성 좋음, Volatile (휘발성)

Secondary Storage(Disk) : 저장이 주 목적 (HDD, SSD)

  • Non -Volatile (비휘발성)

Tertiary Storage : 백업, 보관 이 목적

  • USB, Cloud, 외장하드

  • 위로 갈수록 고비용, 빠름, 휘발성

Caching

Cache라는 비싼 메모리에 무엇을 저장할 지 결정하는 과정.

I/O 연산을 줄이기 위해 Buffer Caching을 많이 한다. 이때, Buffer caching Algorithm이 중요하다.

  • Buffer Cache : DRAM안에 있는 소프트웨어적인 공간(가상공간)

  • Asyncrhonization write : I/O연산을 줄이기 위해 buffer cache에 저장 한번에 HDD/SSD에 쓰기 ( 대부분 write는 이렇게 함)

💻 Computer systems architecture

Single general purpose processor -> Multiprocessor

  • 처리량 증대
  • scale의 경제성 확보
  • 신뢰도 증가 ( 여러개를 돌려 하나가 고장나도 사용가능)

Multiprocessor

1코어 칩이 여러개 있는 멀티 프로세서

  • 처리량 증가 (Increased Throughput)
    적은 시간에 더 많은 작업을 수행함
  • 경제성 확보 (Economy of Scale)
    프로세서는 주변 device와 storage, 메모리 공유
  • 신뢰도 상승 (Increased reliability)
    하나 고장나도 나머지 프로세서가 있으니 신뢰도 상승

두 종류의 Multiprocessor

  • Asymmetric multiprocessing
    각 processor의 private 메모리 허용
    master processor가 나머지 slave processor들 관리
  • Symmetric multiprocessing
    processor간 계층 없이 모두 대칭적이다.
    각 processr만의 private 메모리 없다. 모든 메모리를 공유한다.

UMA & NUMA

  • UMA : 어떤 메모리 든지 모든 CPU에서 동일하게 접근 (Symmetric)

  • NUMA : 프로세서에 의해 메모리 접근 시간이 달라짐 (Asymmetric)

    Multi-core systems

    CPU(chip)은 하나 연산 unit이 여러개

  • MIPS : Million Instruction per second

Frequency를 증가해야 좋은 CPU

  • Multi-core CPU
  • OS 가 Core 할당해줌
  • 프로세스를 core마다 적당히 할당해 줘야 함 (Load balancing Algorithm)

💻 Operating systems structure

Multiprogramming

CPU 와 I/O 장치를 일하게 하기 위함
컴퓨터 자원을 효율적으로 사용하기 위함

  • CPU가 항상 뭐든 실행시키고 있게 함
  • 시스템의 모든 작업을 메모리에 저장한다.
  • OS는 job scheduling을 통해 각 프로그램의 우선순위를 결정하고 CPU자원을 할당한다. (하나의 작업을 실행시킴)
  • 현재 실행중인 프로그램이 I/O와 같은 이유로 대기 상태가 되면 OS는 다른 프로그램을 실행 시킨다.
    - 실행 중인 프로세스를 swap-out 시키고 대기중인 프로세스를 swap-in 시킴
  • 대기 중인 프로그램이 다시 실행될 때 까지 대기 시킨다.
    -> 이를 통해 CPU 자원의 효율적 활용를 실현시킨다.

  • CPU scheduling : 여러 작업이 동시에 수행대기 상태일 때(동시에 요청)
    프로세스를 관리. 프로세스의 우선순위를 결정하고, 프로세슬를 선택하여 CPU를 할당
  • Job scheduling : 여러 작업이 메모리에 들어가려 할때, 메모리에 공간이 부족한 경우
    한 번 실행되고 종료될 작업(Job)을 관리. 비교적 시간이 오래걸리는 작업. 많은 양의 작업을 한번에 처리하는 경우에 사용
  • Virtual memory : 프로세스가 실행시에 메모리에 완전히 할당 되지 않아도 되게끔 해줌.
  • Process : 실행중인 프로그램

💻 Operating systems operation

Interrupt가 정말 잦음

  • Interrupt ( by H/W)
  • Trap (by S/W)

Dual mode ( User mode와 Kernel mode)

  • System을 보호하기 위해 현재 실행중인 프로그램 0, 1 mode bit로 구분
  • User mode : mode bit 1
  • Kernel mode : mode bit 0

Privileged Instruction : Kernel mode 에서만 실행되는 Instruction

  • HW 접근 가능
  • User가 시스템을 건드리지 않게 함
  • 시스템 보호
  • mode bit check
    user mode(1)이면 실행 X, kernel mode(0)이면 실행 O
profile
hello human

0개의 댓글