본문 바로가기
CS/Operating System

[Operating System Concepts] Chapter1, 2 Introduction & OS Structures

by 개복취 2023. 10. 25.

킹룡책

1. What is OS ?

2. 운영체제의 전체적인 방향

 


 

What is OS?

  • 컴퓨터는 정보를 처리하는 장치이다. 계산기와는 서로다른 특성을 보인다.
    • 정보의 최소 단위 : bit(binary digit)
    • 정보의 처리: 정보의 상태 변환 (0 -> 1, 1 -> 0)
    • bool 대수, 논리 게이트, 논리 회로 등으로 정보를 처리한다.
  • 컴퓨터는 범용성(universality)와 계산가능성(computability)의 특성을 가지고 있다.
    • 범용성
      1. NOT, AND , OR 게이트만으로 모든 계산이 가능함
      2. NAND 게이트만으로 모든 계산을 할 수 있다.
      3. 범용 컴퓨터 : general-purpose computer
    • 계산가능성
      1. Turing-computable : 튜링 머신으로 계산 가능한 것
      2. 정지 문제(Halting-Problem) : 튜링 머신으로 풀 수 없는 문제
  • 현대의 거의 모든 컴퓨터는 폰노이만 구조(중앙처리장치(CPU), 메모리, 프로그램)를 가지고 있다.
    메모리에 프로그램을 저장하는 양상을 띈다.
    • 기본적으로 폰 노이만 구조를 가지는 컴퓨터는 불러오기(fetch), 실행하기(execute) 를 한다. 
    • 메모리로 부터 명령어(instruction) 집합들을 불러오고 명령어 레지스터(instruction register)에 저장한다.
    • 명령어들은 해독되어 내부 레지스터에 저장된다.
    • 피연산자에 의해 명령어 집합들이 실행된다. 그리고 결과값들은 메모리에 저장된다.

https://en.wikipedia.org/wiki/Von_Neumann_architecture

  • 컴퓨터는 여러가지 종류의 저장장치를 가지고 있고 접근시간, 저장용량에 따른 위계를 가지고 있다.

https://blog.bytebytego.com/p/a-crash-course-in-redis

  • OS에서 효율적인 작업처리를 위해 OS 작동방식을 이해해야한다.
    • 멀티프로그래밍 : 하나 이상의 프로그램을 한번에 돌리는것, 동시에 여러 프로세스를 메모리에서 돌아가게 하도록 한다.
    • 멀티태스킹(=멀티 프로세싱) : 멀티프로그래밍의 확장선, CPU가 작업을 변경하는 과정을 빠르게 함으로써 유저가 각각의 작업에 대해 상호작용할 수 있도록 하는것을 의미한다.
    • CPU 스케쥴링 : 여러 프로세스가 (동시에) 실행될 준비가 된다면, 어떤 것을 먼저 실행시킬지에 대한 로직을 정하는 것
    • user mode / kernel mode : 한 프로그램이 실수로 다른 프로그램을 실행시키지 않도록 할 수 있도록 한다.
    • 가상화(Virtualization) : 하드웨어 위에 VMM(vmware, virtual box..)을 올려서 여러개의 커널의  OS를 동시에 사용할 수 있도록 할 수 있다.

 

운영체제의 전체적인 방향

process/thread - multiprocessing(cpu scheduling) - synchronization - deadlock