일기 대신 코드 슬쩍

[운영체제] 컴퓨터 구조 및 OS 소개 본문

OS

[운영체제] 컴퓨터 구조 및 OS 소개

코코자 2024. 3. 27. 23:02

먼저 앞으로 배울 운영체제의 간단한 Outline을 소개하겠다. 너무나도 유명한 공룡책을 참고해서 앞으로 정리해보려고 한다.

  • Introduction
  • OS structures
  • Process Management
  • CPU scheduling
  • Synchronization and deadlock
  • Memory Management
  • Storage Management
  • File Management
  • Protection and Security
  • Advanced topics
    • Virtual machines
    • Networks and distributed computers

1.1 What Operating Systems Do: Computer System Structure

  • Hardware: 기본적인 Computing Resource를 제공
  • Ex) CPU, Memory, I/O devices
  • Application Programs
  • Ex) 워드, Compilers, 웹 브라우저, database systems, video game…
  • Operating System: Hardware와 Application Programs를 연결시켜줌
  • Users: 사람, 기계,,,

User View

Computer System 구성요소의 추상적인 View

 

  • Application Program의 Interface
  • Personal Computing: 사용이 쉽고, 성능과 보안기능
  • Embedded Computing: User와의 소통이 거의 없고, application program이 다양하지 않음

System View

  • OS의 Interface

1.1 What Operating Systems Do: Defining Operating Systems

그래서 운영체제가 뭔데?

→ Hardware를 제어하는 Software이며, User와 Hardware 사이의 중계자이며, Application Program의 서비스를 제공하는 Software

OS의 구성요소

  • Kernel(사실 OS=kernel이라고 보기도 함) : 컴퓨터에서 항상 동작하는 하나의 프로그램
  • System programs: OS와 밀접한 관계, Kernel이 필요할 때마다 실행
  • Application programs: OS와 관련 없고, 사용자가 필요시에 실행함

Mobile OS

  • iOS 랑 Android
  • 보통 middleware를 포함함
  • 💡 middleware가 application 개발자에게 추가적인 서비스를 제공

1.2 Computer-System Organization

고전적인, 클래식한 컴퓨터 시스템

  • I/O device랑 CPU는 동시에 동작함
  • CPU가 main memory와 local buffer간의 데이터를 이동시킴
  • Device driver(USB Controller)는 OS와 device 사이를 번역해주는 역할

Interrupts

  • Hardware가 작동 중에 CPU에게 알려주는 Signal ⇒ Hardware와 OS 상호작용의 핵심부분
  1. Signal을 받으면, CPU가 동작을 멈춤
  2. 그 즉시, 정해진 주소로 가서 Service routine을 따라감
  3. Interrupt에 대한 동작 시행

정리해보자면, 키보드에서 “V”키를 누르면 memory에 V를 눌렀다는 명령어가 써지고, CPU에게 알려줌

 

  • FIQ and IRQ
    • FIQ는 nonmaskable로, 중간에 다른 interrupt 들어와도 무시하고 하던 interrupt 신호를 처리함
    • IRQ는 maskable로, 중간에 다른 interrupt들어오면 기존에 처리하던 걸 중단하고 중간에 들어온 interrupt 신호를 처리함
  • Interrupt vector: ISR, 정해진 vector num에 따라 어떤 종류의 error인지 detect 가능

Storage Structure

위의 그림을 보면, 위로 갈수록 속도는 빨라지고 저장용량은 적어짐, 아래로 내려갈수록 속도는 느려지고 저장용량은 많아짐

von Neumann architecture

  • 폰노이만 구조!!
  • lnstruction에 대해 loading, fetch, execute하는 그거

Bootstrap program

  • 컴퓨터 켜자마자 가장 먼저 실행되는 프로그램

I/O Structure

  • Managing I/O: OS의 많은 부분을 차지함
  • Direct Memory Access (DMA)
    • CPU의 개입없이, Hardware가 memory에 직접 접근하여 read, write 할수 있는 기능
    • CPU를 효율적으로 사용할 수 있게함
    • device와 memory는 DMA
    • switch(내부 구조 복잡) vs shared system bus(내부 구조 단순)
    •  


1.3 Computer-System Architecture

Single-Processor Systems

  • CPU(Core 1개) + 특수목적 Processor

Multiprocessor Systems

  • CPU(일반 computer) 여러개 또는 CPU 칩(server computer) 여러개

 ❕ <컴퓨터 부품 기본 요소>

  • CPU: 명령어를 실행시키는 Hardware, logical한 하나의 블록
  • Processor: 1개 이상의 CPU를 포함하는 물리적인 칩
  • Core: CPU 내부의 연산 unit
  • Multicore: 같은 CPU위에 여러개의 계산용 Core가 포함되어 있는 것
  • Multiprocessor: processor가 여러개인 것

 

Symmetric Multiprocessing(SMP)

  • 각각 processor가 독립적으로, 동시에 동작
  • 공유 메모리

Multicore processor

  • Processor안에 여러개의 core가 있는 방식

Non-uniform memory access(NUMA)

  • CPU가 local memory를 가짐(공유X)
  • 주소를 나눠가지고, 서로 다른 메모리에 접근 가능함
  • 장점: 효율적인 스케쥴링
  • 단점: 다른 메모리에 접근시간🔺

Blade servers

  • 본체 안에 여러개의 모듈

Clustered Systems

  • LAN 또는 InifiniBand를 통한 느슨한 결합
  • High availability service
  • Clustering structure
    • Asymmetric: Hot-standby(최소 1개는 standby중)
    • Symmetric: 그룹으로 나눠서 그룹별로 모니터링!
  • High-performance computing(HPC)

1.4 Operating-System Operations

Bootstrap program (initial program)

  • 하드웨어 초기화 및 OS 로딩

Kernel

  • system과 user에게 서비스 제공
  • System demons: system service

Trap

  • software-generated interrupt

Multiprogramming & Multitasking

  • Multiprogramming
  •  
  • memory에 여러개의 프로그램을 적재
  • CPU가 idle 상태일 때 다른 프로그램을 실행하여 한 번에 여러개의 프로그램을 실행하는 것처럼 보이는…
  • 효율 극대화시킴
  • Multitasking
    • multiprogramming의 논리적인 확장
    • 더 빈번한 context switching → 더 빠름!

Dual-Mode and Multimode Operation

  1. Kernel mode
  • 잘못된 프로그램으로 인해 다른 프로그램이 잘못 실행되지 않도록 하기 위해 사용하는 모드
  • 모든 resource에 접근가능
  1. User mode
  • user가 접근할 수 있는 영역을 제한하고, program의 resource에 함부로 침범할 수 없는 모드

Timer

  • 무한 루프엥서 빠져나오기 위함
  • 주기적으로 interrupt 신호를 보냄( 정상적인 program은 timer를 지속적으로 reset하지만, 비정상적인 program은 timer reset을 못하므로 interrupt signal이 전달됨)

'OS' 카테고리의 다른 글

[운영체제] Threads & Concurrency  (0) 2024.04.11
[운영체제] Processes(2)  (2) 2024.04.03
[운영체제] Processes  (0) 2024.04.01
[운영체제] OS 구조  (0) 2024.04.01
[운영체제] OS 소개(2)  (0) 2024.03.31