| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 
- 회귀
 - 오블완
 - Machine Learning
 - LG Aimers
 - 딥러닝
 - Classification
 - supervised learning
 - LG Aimers 4th
 - OpenAI
 - regression
 - 머신러닝
 - 분류
 - gpt
 - ChatGPT
 - LLM
 - AI
 - 지도학습
 - deep learning
 - GPT-4
 - 해커톤
 - 티스토리챌린지
 - PCA
 - LG
 
- Today
 
- Total
 
SYDev
[운영체제] Chapter 1. Introduction 본문
경희대학교 허선영 교수님의 운영체제 수업을 기반으로 정리한 글입니다.
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

- Disk에 위치한 프로그램 실행
 - Memory에 program(instruction set) 위치
 - CPU는 program 내의 instruction을 하나하나 처리
 - 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
'3학년 2학기 전공 > 운영체제' 카테고리의 다른 글
| [운영체제] Chapter 5. CPU Scheduling (5) | 2024.10.09 | 
|---|---|
| [운영체제] Chapter 4. Thread & Concurrency (1) | 2024.10.01 | 
| [운영체제] Chapter 3. Processes (4) | 2024.09.24 | 
| [운영체제] Exercise 1 (1) | 2024.09.14 | 
| [운영체제] Chapter 2. Operating System Structures (2) | 2024.09.10 |