Notice
Recent Posts
Recent Comments
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[운영체제] Chapter 1. Introduction 본문

3학년 2학기 전공/운영체제

[운영체제] Chapter 1. Introduction

시데브 2024. 9. 10. 11:34
경희대학교 허선영 교수님의 운영체제 수업을 기반으로 정리한 글입니다.

 

Computer Architecture 

von Neumann Architecture

  • processing unit with arithmetic logic units & processor registers
  • Memory stores data & instructions

-> CPU Memory를 분리하여 명령어를 따로 저장하는 '프로그램 내장 방식'이 핵심 !!

-> 기존에 하나의 기기를 스위치로 조작하던 방식 -> CPU와 메모리를 분리하고, '연산 작업'을 program memory에 순서대로 저장한 후, 해당 연산 작업이 필요해질 때 저장해놓은 program을 찾아 data 영역으로 꺼내온 뒤 입력값과 함께 전달하여 CPU에 전달해 연산작업 진행 -> CPU에서 데이터 연산을 마친 뒤 다시 memory에 저장

-> 폰 노이만 구조는 hardware를 재배치할 필요 없이, 프로그램인 software만 교체하면 되므로, software programming이 가능한 세계 최초의 프로그램 내장 방식 컴퓨터를 탄생시킴(EDSAC)

 

 

  • von Neumann Architecture의 문제점: CPU와 Memory 사이의 병목현상 -> CPU와 메모리 사이에서 명령을 전송하는 속도 & 메모리 내부에서 프로그램을 찾는 속도 매우 느림
  • 대규모 병렬처리(Massively Paralled Processor), Multi core processor, cache, ...

Hardware Organization of Typical Computing System

  • CPU
  • Bus
  • Main Memory
  • USB controller
  • Graphics adapter
  • Disk controller

 

Storage Hierarchy

  • volatile & nonvolatile storage -> pc가 꺼져도 data가 남아있는가를 기준으로 나뉨
  • registers: 사칙연산 결과를 임시로 저장
  • cache: memory의 정보를 미리 가져옴
  • registers & cache는 CPU 상에 존재 -> on-chip
  • storage capacity가 커지면, access time은 느려짐
  • storage capacity가 작아지면, access time은 빨라짐

Example

  1. Disk에 위치한 프로그램 실행
  2. Memory에 program(instruction set) 위치
  3. CPU는 program 내의 instruction을 하나하나 처리
  4. fetch(명령어 가져오는 과정) - decode(명령어 해석) - execute - store

 

Multi-Core Processors

  • Multiple processor cores are integrated onto a single chip
  • CPU 1개 but, 명령어 처리 가능한 core가 여러 개
  • core 1개1개의 thread 처리 가능 
  • 그렇다면 core가 많을 수록 무조건 좋다? -> clock 속도를 간과할 위험이 있다.

 

What Operating Systems Do?

  • Computer User & Computer Hardware 사이에서 동작한다

  • Process Management: 한정된 자원에 어떻게 process를 효율적으로 배분할지가 중요
  • Process Synchronization: 
    • 공유 데이터의 동시접근은 데이터의 불일치 문제
    • 일관성 유지를 위해서는 협력 프로세스간의 실행 순서를 정해주는 메커니즘 필요

 

Process Management

Process

  • Process: 실행 중인 프로그램 -> work의 단위
  • os는 각각의 Process의 Lifetime을 관리

 

Thread

  • Thread: CPU 내부에서 실질적으로 work를 수행하는 가장 작은 단위
  • Multi-threading: 하나의 process를 다수의 실행 단위로 구분하여, 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것 -> 하나의 프로그램에서 여러 개의 일을 수행할 수 있도록 함
  • ex) 워드 프로세서에서 그림을 표시하고, 키 입력에 응답하며, 철자 및 문법 검사를 계속 함

 

Process Scheduling

  • Scheduler: 언제, 어떤 process를 선택해서 CPU에서 실행하는지 선택하는 Module
  • CPU 효율 극대화를 위해서 적절한 Scheduling 필요

 

Process Synchronization

  • Critical Section: 병렬 프로그래밍에서 둘 이상의 thread가 동시에 접근해서는 안 되는 공유자원(file, I/O, 공유 데이터 등)을 접근하는 intruction 혹은 code의 일부 영역
  • Critical section으로 발생하는 문제를 해결하기 위해서 Process Synchronization(동기화)이 필요

 

Storage Management

 

File Management

 

 


참고자료

 

컴퓨터 구조 #2 (컴퓨터의 탄생, 폰노이만 구조)

Computer 컴퓨터는 프로세스 (Process, 연산장치)와 메모리(Memory, 저장장치)로 구성된 장치이다. 현대에서 사용하는 대부분의 컴퓨터는 아래와 같은 폰노이만 구조를 뼈대로 사용하고 있다. # 컴퓨터

jiwondev.tistory.com

 

멀티코어 프로세서

멀티 코어 프로세서 CPU는 두 개 이상의 독립 코어를 단일 집적회로로 이루어진 하나의 패키지로 통합한 것이다. dual-core, triple-core, hexa-core, octa-core, deca-core, dodeca-core (코어의 수 별)각 코어는 슈

velog.io

 

[OS Chapter 6] Process Synchronization

데이터의 접근과정에서 문제를 먼저 살펴보도록 합니다. Process Synchronization = 프로세스 동기화 = Concurrency Control = 병행 제어 데이터의 접근 데이터를 가져와 연산하고 연산 후 결과를 데이터에 다

data-engineer.tistory.com

 

[운영체제] 멀티스레드 : Multi-thread (장단점, 멀티프로세스와 차이)

Multi-thread 아래 글에서는 프로세스와 스레드에 대한 기본적인 설명을 하지 않습니다. 프로세스와 스레드에 대한 내용은 여기를 참고해주세요 :) 멀티 스레딩(Multi-threading)이란? 하나의 프로세스

eun-jeong.tistory.com

 

[운영체제(OS)] 5. 프로세스 스케줄링(Process Scheduling)

[목차] 1. CPU Scheduling 2. Scheduling Criteria 3. Scheduling Algorithm 4. Multiple-Processor Scheduling 참고) - https://parksb.github.io/article/9.html - KOCW 공개강의 (2014-1. 이화여자대학교 - 반효경) - Sogang Univ. Operating System Lec

rebro.kr

 

Critical Section이란 무엇일까?

Critical Section Critical Section은 (임계구역 또는 공유변수 영역) 병렬프로그래밍에서 둘 이상의 스레드 (멀티스레드)가 동시에 접근해서는 안되는 공유 자원(파일, 입출력, 공유 데이터 등) 을 접근하

hun-developer.tistory.com