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

개발 99·2025년 4월 1일

공룡책

목록 보기
2/22

Chapter 1-2. Introduction & O/S Structures

An operating system is

  • computer hardware를 관리하는 소프트웨어

  • App과 hardware 사이에 중간매개의 역할을 수행한다.

computer 4 components

  • hardware

  • os

  • app

  • user

Defining Operating System

  • running at all times인 program
  • called kernel

kernel에서 system programs, application 관리를 해준다.

Computer system 구조

bootstrap이란?

컴퓨터 부팅시, 맨 처음에 실행되는 프로그램.
(OS를 로딩하는 역할을 수행한다.)

interrupts

interrupt을 통해서 cpu는 interrupt 명령어를 먼저 처리한다.

cpu가 peek를 한 것은 I/O device에서 interrupt가 발생했기 때문임.

Hardware는 interrupt을 trigger를 하는데, 이때 CPU에 signal을 전송한다.(system bus 사용)

  • Interrupt에 의해서 비동기 처리가 가능하다.
  • 각 Device별로 컨트롤러(작은 cpu)가 있으며, 작업을 완료할 경우 local buffer에 저장한다.
  • 만약 interrupt 발생 시, cpu의 현재 작업을 pcb로 os가 관리를 한다.
  • interrupt 발생 시, cpum는 현재 작업을 중단하고, 인터럽트 라인의 task를 먼저 처리한다.

폰 노이만 구조( fetch-execution cycle )

memory에서 명령어를 fetch한 후, cpu에서 실행하는 fetch-execute 구조를 가진다.

이때 instruction register에 명령어를 저장한다.

storage 구조

구분 기준

  • storage capacity

  • access time

I/O Structure

DMA

CPU를 안거치고 Device가 Memory에 직접 접근.

Definitions of Computer System Components

  • CPU : 명령어를 처리하는 H/W

  • Processor : 1개 이상의 CPU를 포함하는 물리적인 칩

  • Core : CPU의 백그라운드 연산 장치

  • Multicore : Cores

  • Multiprocessor : 여러 프로세서.

Symmetric multiprocessing(SMP)


1개의 메모리에 여러개의 CPU가 연결되어 있음

Multi-core design


1개의 CPU에 여러개의 core만 추가를 한다.

Multiprogramming

단일 프로세스 문제를 해결하기 위해 여러개의 프로그램을 메모리에 올려놓고 하나의 CPU에서 번갈아 가며 동시에 실행시키는 방안을 첨가 하였다.
멀티 프로그래밍은 여러개의 프로그램이 동시에 실행된다는 의미로서, CPU 사용률을 극대화 시키는게 목적을 두었다.

그러나 어느 한 프로그램이 CPU 사용 시간이 길어지면 다른 프로세스는 계속 대기를 해야 한다는 문제점이 존재 하였다. 위의 그림에서 P #1 작업 시간이 엄청 길어질 경우 P #2 는 실행될 기회조차 못 얻게 된다.
https://inpa.tistory.com/entry/👩‍💻-multi-programming-tasking-processing [Inpa Dev 👨‍💻:티스토리]

Multitasking(=multiprocessing)

멀티 프로그래밍의 취지는 좋았지만 어느한 프로세스가 모두 실행되야 다음 프로세스가 실행될 수 있는 한계점이 있었다. 따라서 이것을 해결하기 위해 프로세스는 한번 CPU를 사용할때 아주 짧은 시간(quantum)만 실행되도록 하여 각 프로그램의 작업을 아주 작은 단위로 번갈아 가며 처리하면서, 작업 응답 시간을 최소화 시키는 멀티 태스킹 원리가 탄생하였다. 
이때 잘게 나뉘어진 프로세스 끼리 작업이 스위칭 되는 것을 문맥 교환(Context Switching) 이라고 한다.

이렇게 프로세스 작업이 잘게 나뉘어져 교대로 실행함으로써 얻게 되면 이점은 다음과 같다.
출처: https://inpa.tistory.com/entry/👩‍💻-multi-programming-tasking-processing [Inpa Dev 👨‍💻:티스토리]
( 동시에 실행하는 것처럼 보임 )

  • CPU scheduling:
    task들을 골고루 scheduling해서 처리한다.
    ( cpu효율을 극대화 )

Two separate mode of operations

  • user mode

  • kernel mode


user process는 system call을 통해서 kernel에 요청을 보낸다.(간접적으로 요청)

kernel만 하드웨어 제어

Virtualization

운영체제를 여러개 가동을 하는 것을 의미.

가상화와 OS 사이에 VMM(Virtual Machine Manager)를 주입한다.

VMM을 통해서 여러개의 OS 구동이 가능하다.

다양한 컴퓨팅 환경

  • Traditional Computing

  • Mobile Computing

  • Client-Server

  • Peer-to-Peer

  • Cloud Computing
    나는 UI(terminal)만 있고, 실제 리소스는 Cloud에 있다.

  • Real-Time Embedded Systems

CLI

command line interface
known as bash shell

GUI

graphical user interface

System calls

System call을 통해서 OS의 기능을 사용한다.(OS Api)

라이브러리를 통해서 OS 기능을 쓸 수 있다.

profile
구구구구구!

0개의 댓글