일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 딥러닝
- 티스토리챌린지
- deep learning
- AI
- OpenAI
- ChatGPT
- Classification
- PCA
- LG
- 오블완
- LG Aimers 4th
- regression
- LLM
- 분류
- gpt
- GPT-4
- LG Aimers
- 회귀
- supervised learning
- 지도학습
- 해커톤
- 머신러닝
- Machine Learning
Archives
- 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
참고자료
'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 (0) | 2024.09.10 |