컴퓨터 시스템의 구성요소

  • 하드웨어
  • 운영체제
  • 응용 프로그램
  • 사용자

 

 

 

 

운영체제의 정의

컴퓨터에서 항상 실행되는 하나의 프로그램

 →  이것을 보통 커널이라고 함

 →  OS에서 핵심적인 역할

 

 

커널에서 두 가지 타입의 프로그램

1. 시스템 프로그램

2. 애플리케이션 프로그램

 

 

전통적인 컴퓨터 시스템의 구성

     하나 이상의 CPU

     공통된 버스에 연결된 여러 디바이스 컨트롤러 

 

 

부트스트랩 프로그램

     컴퓨터 전원을 켤 때 실행되는 첫 번째 프로그램

     OS를 메모리에 로드해주는 역할

 

 

인터럽트

I/O 디바이스에서 입력이 발생하여 이 정보를 CPU에 전달할 때 발생

     하드웨어는 언제든 인터럽트 유발 가능

     보통 시스템 버스를 통해서 CPU에 신호 전달

 

출력을 수행하는 단일 프로그램에 대한 인터럽트 타임라인

 

 

폰 노이만 아키텍처

일반적인 명령어 실행 주기

     먼저 메모리에서 명령어를 가져와서 (fetch) 해당 명령어를 명령어 레지스터에 저장한다.

     그런 다음 명령어가 해독되고 피연산자가 메모리에서 가져와져 일부 내부 레지스터에 저장될 수 있다. 

     피연산자에 대한 명령이 실행(execute)된 후 결과가 메모리에 다시 저장될 수 있다.

 

 

저장 장치 계층

 

다양한 스토리지 시스템이 계층 구조로 구성되는 기준

     저장 용량

     접근 시간 (속도)

 

 

I/O 구조

OS 코드의 대부분은 I/O 처리다.

컴퓨터 시스템의 작동 원리

 

DMA = Direct Memory Access

 

 

컴퓨터 시스템 구성 요소의 정의

CPU

명령을 실행시키는 하드웨어

 

프로세서, Processor

하나 이상의 CPU를 포함하는 물리적인 칩

 

코어, Core

CPU의 백 연산 유닛

 

멀티코어, Multicore

동일한 CPU에 여러 컴퓨팅 코어를 포함

 

멀티프로세서, Multiprocessor

다중 프로세서 포함

 

 

SMP, Symmetric Multiprocessing

각 CPU 프로세서가 모든 작업을 수행하는 가장 일반적인 다중 프로세서 시스템

SMP 아키텍처

 

 

Multi-core 디자인

듀얼 코어 디자인 - 하나의 칩에 코어가 2개

 

 

Multiprogramming

     한 번에 한 개 이상의 프로그램이 실행

     CPU 사용률을 높이기 위해 동시에 여러 프로세스를 메모리에 유지

다중 프로그래밍 시스템의 메모리 레이아웃

 

 

Multitasking (=multiprocessing)

다중 프로그래밍의 논리적 확장

     CPU가 작업을 자주 전환하여 사용자가 실행 중인 각 작업과 상호 작용할 수 있도록 한다.

     Concurrency(동시성)와 parallelism(병렬성)의 차이 이해하기

 

CPU 스케줄링

     여러 프로세스가 동시에 실행할 준비가 된 경우 시스템은 다음에 실행할 프로세스를 선택해야 한다.

     CPU 효율을 가장 높일 수 있는 방법은 무엇?

 

 

두 가지의 분리된 작동 모드

사용자 모드(user mode)와 커널 모드(kernel mode)

 →  잘못된 프로그램으로 인해 다른 프로그램이 잘못 실행되지 않도록 하기 위해

 →  커널 모드가 아니면 직접적으로 하드웨어 제어 불가능

사용자 모드에서 커널 모드로 이행

 

 

가상화, Virtualization

단일 컴퓨터의 하드웨어를 여러 다른 실행 환경으로 추상화할 수 있는 기술

 

VMM, Virtual Machine Manager

     VMware, XEN, WSL(Windows System for Linux), ...

 

(a) 단일 운영 체제와 (b) 3개의 가상 머신을 실행하는 컴퓨터

 

 

다양한 컴퓨팅 환경의 운영체제

     전통적인 컴퓨팅

     모바일 컴퓨팅 (e.g. Android, iOS)

     클라이언트-서버 컴퓨팅 (e.g. Web)

     P2P, Peer to Peer 컴퓨팅: 인터넷에서 개인과 개인이 직접 연결되어 파일을 공유

     클라우드 컴퓨팅 (e.g. AWS, Azure, GCP)

     실시간 임베디드 시스템

 

 

OS는 프로그램 실행을 위한 환경을 제공

     User Interface

     Program execution

     I/O operation

     File-system manipulation

     Communications

     Error detection

     Resource allocation

     Logging

     Protection and security

 

 

 

 

'CS > OS' 카테고리의 다른 글

[운영체제] 01. 운영체제가 뭐길래?  (0) 2022.05.26

+ Recent posts