운영체제

02. 운영체제의 개념과 구조

syom 2021. 9. 2. 16:12

- 본 글은 인프런 공룡책 운영체제 강의를 듣고 정리한 내용입니다

0. Operating system

  • 컴퓨터의 하드웨어를 관리해주는 소프트웨어
  • 어플리케이션 프로그램, 하드웨어와 유저간의 연결을 해주는 역할
  • 가장 핵심적인 것은 Kernel

1. 0 - Classical computer system

  • 책에선 modern 이라 나옴
  • CPU, bus 로 연결된 여러개의 device controllers 로 구성되어 있다

1. 1 - Bootstrap

  • 컴퓨터가 시작되자마자 가장먼저 실행하는 프로그램 ( 부팅 프로그램 )
  • 운영체제를 메모리에 로딩한다

1.2 - Interrupts

  • I/O 디바이스 에서 신호가 있을 때 그 신호를 통신해주는 것
  • system bus 를 통해 CPU에 signal을 보내준다

1.3 - 폰노이만 아키텍쳐

  • fetch , execute 를 사용
  • instruction register (IR) 에다가 저장함

2.0 - storage system

  • 용량과 속도에 따라 나뉘어짐
  • 순서
    1. registers
    2. cache
    3. main memory (RAM)
    4. solid-state disk (SSD)
    5. hard disk (HDD)
    6. optical disk
    7. magnetic tapes : backup 용도

3.0 - I / O structure

  • thread of execution 를 가지는 CPU
  • DMA (Direct Memory Access)
  • : 유튜브 영상을 보는것과 같이 network가 바로 LCD 로 전송하여 CPU가 하는 연산이 거의 없는 것과 같은 interrupt 구조도 있다.

4.0 - Computer System Components

  • CPU 
  • Processor 
  • Core 
  • Multicore - 같은 프로세스 칩 하나에 여러개의 코어로 나눠진것
  • Multiprocessor - 멀티코어가 여러개 있는 것

4.1 - Symmetric multiprocessing (SMP)

  • 하나의 메모리가 여러개의 CPU ( 레지스터, 캐시를 포함한 )를 관리
  • 슈퍼컴퓨터...

4.2 - Multiprogramming

  • 여러개의 프로그램을 동시에 실행되고 있는 것
  • 여러개의 프로세스가 메모리에 동시에 올라가 있는 것
  • CPU 사용 효율을 늘릴 수 있다

4.3 - Multitasking ( = multiprocessing )

  • 멀티프로그래밍의 연장 (?)
  • 우리가 동시에 여러가지 프로그램을 실행시키는데 이를 CPU가 자주 왔다갔다하며 실행시키는데 이를 통해서 우리는 동시에 여러 프로그램을 사용할 수 있는 것
  • CPU scheduling
  • : CPU 효율을 가장 좋게 쓸수 있도록 하는 것

5.0 - mode of operation

  • 유저모드 / 커널모드
  • kernel mode 에서만 할 수 있는 것들이 있다 (예 : system call)

6.0 - Virtualization (가상화)

  • VMM (Virtual Machine Manager)
  • : VMware, XEN, WSL
  • 가상머신을 통하여 하드웨어 위에 O/S를 돌리는것

7.0 - Computing Environments 의 종류

  • Traditional Computing
  • Mobile Computing : 요즘 많이 쓰인다
  • Client-Server Computing : 대표적인 예는 web
  • Peer-to-Peer Computing : 음악/영화 등 공유, 토렌트같은 것
  • Cloud Computing : AWS, Azure, GCP
  • Real-Time Embedded System : 화성탐사봇, 라즈베리파이 등 (RTOS)

8.0 - OS 에 interface 하기위한 방법

  • CLI : shell
  • GUI : window, mac
  • Touch-Screen Interface : Android

8.1 - System call

  • OS가 제공하는 서비스들 (write, read 등)
  • API : OS 의 API 가 system call
  • 일일이 커널모드에 들어가게 해서 실행하기 번거로우니 라이브러리 등을 사용한다
  • ⇒ stdio.h 의 printf 등

'운영체제' 카테고리의 다른 글

06. 프로세스간 통신의 실제  (0) 2021.09.06
05. 프로세스간 통신  (0) 2021.09.05
04. 프로세스의 생성  (0) 2021.09.04
03. 프로세스의 이해  (0) 2021.09.03
01. 운영체제 기초  (0) 2021.09.01