먼저 앞으로 배울 운영체제의 간단한 Outline을 소개하겠다. 너무나도 유명한 공룡책을 참고해서 앞으로 정리해보려고 한다.
- Introduction
- OS structures
- Process Management
- CPU scheduling
- Synchronization and deadlock
- Memory Management
- Storage Management
- File Management
- Protection and Security
- Advanced topics
- Virtual machines
- Networks and distributed computers
1.1 What Operating Systems Do: Computer System Structure
- Hardware: 기본적인 Computing Resource를 제공
- Ex) CPU, Memory, I/O devices
- Application Programs
- Ex) 워드, Compilers, 웹 브라우저, database systems, video game…
- Operating System: Hardware와 Application Programs를 연결시켜줌
- Users: 사람, 기계,,,
User View

- Application Program의 Interface
- Personal Computing: 사용이 쉽고, 성능과 보안기능
- Embedded Computing: User와의 소통이 거의 없고, application program이 다양하지 않음
System View
- OS의 Interface
1.1 What Operating Systems Do: Defining Operating Systems
그래서 운영체제가 뭔데?
→ Hardware를 제어하는 Software이며, User와 Hardware 사이의 중계자이며, Application Program의 서비스를 제공하는 Software
OS의 구성요소
- Kernel(사실 OS=kernel이라고 보기도 함) : 컴퓨터에서 항상 동작하는 하나의 프로그램
- System programs: OS와 밀접한 관계, Kernel이 필요할 때마다 실행
- Application programs: OS와 관련 없고, 사용자가 필요시에 실행함
Mobile OS
- iOS 랑 Android
- 보통 middleware를 포함함
- 💡 middleware가 application 개발자에게 추가적인 서비스를 제공
1.2 Computer-System Organization

고전적인, 클래식한 컴퓨터 시스템
- I/O device랑 CPU는 동시에 동작함
- CPU가 main memory와 local buffer간의 데이터를 이동시킴
- Device driver(USB Controller)는 OS와 device 사이를 번역해주는 역할
Interrupts
- Hardware가 작동 중에 CPU에게 알려주는 Signal ⇒ Hardware와 OS 상호작용의 핵심부분
- Signal을 받으면, CPU가 동작을 멈춤
- 그 즉시, 정해진 주소로 가서 Service routine을 따라감
- Interrupt에 대한 동작 시행
정리해보자면, 키보드에서 “V”키를 누르면 memory에 V를 눌렀다는 명령어가 써지고, CPU에게 알려줌

- FIQ and IRQ
- FIQ는 nonmaskable로, 중간에 다른 interrupt 들어와도 무시하고 하던 interrupt 신호를 처리함
- IRQ는 maskable로, 중간에 다른 interrupt들어오면 기존에 처리하던 걸 중단하고 중간에 들어온 interrupt 신호를 처리함
- Interrupt vector: ISR, 정해진 vector num에 따라 어떤 종류의 error인지 detect 가능
Storage Structure

위의 그림을 보면, 위로 갈수록 속도는 빨라지고 저장용량은 적어짐, 아래로 내려갈수록 속도는 느려지고 저장용량은 많아짐
von Neumann architecture
- 폰노이만 구조!!
- lnstruction에 대해 loading, fetch, execute하는 그거
Bootstrap program
- 컴퓨터 켜자마자 가장 먼저 실행되는 프로그램
I/O Structure
- Managing I/O: OS의 많은 부분을 차지함
- Direct Memory Access (DMA)
- CPU의 개입없이, Hardware가 memory에 직접 접근하여 read, write 할수 있는 기능
- CPU를 효율적으로 사용할 수 있게함
- device와 memory는 DMA
- switch(내부 구조 복잡) vs shared system bus(내부 구조 단순)

1.3 Computer-System Architecture
Single-Processor Systems
- CPU(Core 1개) + 특수목적 Processor
Multiprocessor Systems
- CPU(일반 computer) 여러개 또는 CPU 칩(server computer) 여러개
❕ <컴퓨터 부품 기본 요소>
- CPU: 명령어를 실행시키는 Hardware, logical한 하나의 블록
- Processor: 1개 이상의 CPU를 포함하는 물리적인 칩
- Core: CPU 내부의 연산 unit
- Multicore: 같은 CPU위에 여러개의 계산용 Core가 포함되어 있는 것
- Multiprocessor: processor가 여러개인 것
Symmetric Multiprocessing(SMP)
- 각각 processor가 독립적으로, 동시에 동작
- 공유 메모리

Multicore processor
- Processor안에 여러개의 core가 있는 방식

Non-uniform memory access(NUMA)

- CPU가 local memory를 가짐(공유X)
- 주소를 나눠가지고, 서로 다른 메모리에 접근 가능함
- 장점: 효율적인 스케쥴링
- 단점: 다른 메모리에 접근시간🔺
Blade servers
- 본체 안에 여러개의 모듈
Clustered Systems
- LAN 또는 InifiniBand를 통한 느슨한 결합
- High availability service
- Clustering structure
- Asymmetric: Hot-standby(최소 1개는 standby중)
- Symmetric: 그룹으로 나눠서 그룹별로 모니터링!
- High-performance computing(HPC)
1.4 Operating-System Operations
Bootstrap program (initial program)
- 하드웨어 초기화 및 OS 로딩
Kernel
- system과 user에게 서비스 제공
- System demons: system service
Trap
- software-generated interrupt
Multiprogramming & Multitasking
- Multiprogramming
- memory에 여러개의 프로그램을 적재
- CPU가 idle 상태일 때 다른 프로그램을 실행하여 한 번에 여러개의 프로그램을 실행하는 것처럼 보이는…
- 효율 극대화시킴
- Multitasking
- multiprogramming의 논리적인 확장
- 더 빈번한 context switching → 더 빠름!

Dual-Mode and Multimode Operation
- Kernel mode
- 잘못된 프로그램으로 인해 다른 프로그램이 잘못 실행되지 않도록 하기 위해 사용하는 모드
- 모든 resource에 접근가능
- User mode
- user가 접근할 수 있는 영역을 제한하고, program의 resource에 함부로 침범할 수 없는 모드

Timer
- 무한 루프엥서 빠져나오기 위함
- 주기적으로 interrupt 신호를 보냄( 정상적인 program은 timer를 지속적으로 reset하지만, 비정상적인 program은 timer reset을 못하므로 interrupt signal이 전달됨)
'OS' 카테고리의 다른 글
[운영체제] Threads & Concurrency (0) | 2024.04.11 |
---|---|
[운영체제] Processes(2) (2) | 2024.04.03 |
[운영체제] Processes (0) | 2024.04.01 |
[운영체제] OS 구조 (0) | 2024.04.01 |
[운영체제] OS 소개(2) (0) | 2024.03.31 |
먼저 앞으로 배울 운영체제의 간단한 Outline을 소개하겠다. 너무나도 유명한 공룡책을 참고해서 앞으로 정리해보려고 한다.
- Introduction
- OS structures
- Process Management
- CPU scheduling
- Synchronization and deadlock
- Memory Management
- Storage Management
- File Management
- Protection and Security
- Advanced topics
- Virtual machines
- Networks and distributed computers
1.1 What Operating Systems Do: Computer System Structure
- Hardware: 기본적인 Computing Resource를 제공
- Ex) CPU, Memory, I/O devices
- Application Programs
- Ex) 워드, Compilers, 웹 브라우저, database systems, video game…
- Operating System: Hardware와 Application Programs를 연결시켜줌
- Users: 사람, 기계,,,
User View

- Application Program의 Interface
- Personal Computing: 사용이 쉽고, 성능과 보안기능
- Embedded Computing: User와의 소통이 거의 없고, application program이 다양하지 않음
System View
- OS의 Interface
1.1 What Operating Systems Do: Defining Operating Systems
그래서 운영체제가 뭔데?
→ Hardware를 제어하는 Software이며, User와 Hardware 사이의 중계자이며, Application Program의 서비스를 제공하는 Software
OS의 구성요소
- Kernel(사실 OS=kernel이라고 보기도 함) : 컴퓨터에서 항상 동작하는 하나의 프로그램
- System programs: OS와 밀접한 관계, Kernel이 필요할 때마다 실행
- Application programs: OS와 관련 없고, 사용자가 필요시에 실행함
Mobile OS
- iOS 랑 Android
- 보통 middleware를 포함함
- 💡 middleware가 application 개발자에게 추가적인 서비스를 제공
1.2 Computer-System Organization

고전적인, 클래식한 컴퓨터 시스템
- I/O device랑 CPU는 동시에 동작함
- CPU가 main memory와 local buffer간의 데이터를 이동시킴
- Device driver(USB Controller)는 OS와 device 사이를 번역해주는 역할
Interrupts
- Hardware가 작동 중에 CPU에게 알려주는 Signal ⇒ Hardware와 OS 상호작용의 핵심부분
- Signal을 받으면, CPU가 동작을 멈춤
- 그 즉시, 정해진 주소로 가서 Service routine을 따라감
- Interrupt에 대한 동작 시행
정리해보자면, 키보드에서 “V”키를 누르면 memory에 V를 눌렀다는 명령어가 써지고, CPU에게 알려줌

- FIQ and IRQ
- FIQ는 nonmaskable로, 중간에 다른 interrupt 들어와도 무시하고 하던 interrupt 신호를 처리함
- IRQ는 maskable로, 중간에 다른 interrupt들어오면 기존에 처리하던 걸 중단하고 중간에 들어온 interrupt 신호를 처리함
- Interrupt vector: ISR, 정해진 vector num에 따라 어떤 종류의 error인지 detect 가능
Storage Structure

위의 그림을 보면, 위로 갈수록 속도는 빨라지고 저장용량은 적어짐, 아래로 내려갈수록 속도는 느려지고 저장용량은 많아짐
von Neumann architecture
- 폰노이만 구조!!
- lnstruction에 대해 loading, fetch, execute하는 그거
Bootstrap program
- 컴퓨터 켜자마자 가장 먼저 실행되는 프로그램
I/O Structure
- Managing I/O: OS의 많은 부분을 차지함
- Direct Memory Access (DMA)
- CPU의 개입없이, Hardware가 memory에 직접 접근하여 read, write 할수 있는 기능
- CPU를 효율적으로 사용할 수 있게함
- device와 memory는 DMA
- switch(내부 구조 복잡) vs shared system bus(내부 구조 단순)

1.3 Computer-System Architecture
Single-Processor Systems
- CPU(Core 1개) + 특수목적 Processor
Multiprocessor Systems
- CPU(일반 computer) 여러개 또는 CPU 칩(server computer) 여러개
❕ <컴퓨터 부품 기본 요소>
- CPU: 명령어를 실행시키는 Hardware, logical한 하나의 블록
- Processor: 1개 이상의 CPU를 포함하는 물리적인 칩
- Core: CPU 내부의 연산 unit
- Multicore: 같은 CPU위에 여러개의 계산용 Core가 포함되어 있는 것
- Multiprocessor: processor가 여러개인 것
Symmetric Multiprocessing(SMP)
- 각각 processor가 독립적으로, 동시에 동작
- 공유 메모리

Multicore processor
- Processor안에 여러개의 core가 있는 방식

Non-uniform memory access(NUMA)

- CPU가 local memory를 가짐(공유X)
- 주소를 나눠가지고, 서로 다른 메모리에 접근 가능함
- 장점: 효율적인 스케쥴링
- 단점: 다른 메모리에 접근시간🔺
Blade servers
- 본체 안에 여러개의 모듈
Clustered Systems
- LAN 또는 InifiniBand를 통한 느슨한 결합
- High availability service
- Clustering structure
- Asymmetric: Hot-standby(최소 1개는 standby중)
- Symmetric: 그룹으로 나눠서 그룹별로 모니터링!
- High-performance computing(HPC)
1.4 Operating-System Operations
Bootstrap program (initial program)
- 하드웨어 초기화 및 OS 로딩
Kernel
- system과 user에게 서비스 제공
- System demons: system service
Trap
- software-generated interrupt
Multiprogramming & Multitasking
- Multiprogramming
- memory에 여러개의 프로그램을 적재
- CPU가 idle 상태일 때 다른 프로그램을 실행하여 한 번에 여러개의 프로그램을 실행하는 것처럼 보이는…
- 효율 극대화시킴
- Multitasking
- multiprogramming의 논리적인 확장
- 더 빈번한 context switching → 더 빠름!

Dual-Mode and Multimode Operation
- Kernel mode
- 잘못된 프로그램으로 인해 다른 프로그램이 잘못 실행되지 않도록 하기 위해 사용하는 모드
- 모든 resource에 접근가능
- User mode
- user가 접근할 수 있는 영역을 제한하고, program의 resource에 함부로 침범할 수 없는 모드

Timer
- 무한 루프엥서 빠져나오기 위함
- 주기적으로 interrupt 신호를 보냄( 정상적인 program은 timer를 지속적으로 reset하지만, 비정상적인 program은 timer reset을 못하므로 interrupt signal이 전달됨)
'OS' 카테고리의 다른 글
[운영체제] Threads & Concurrency (0) | 2024.04.11 |
---|---|
[운영체제] Processes(2) (2) | 2024.04.03 |
[운영체제] Processes (0) | 2024.04.01 |
[운영체제] OS 구조 (0) | 2024.04.01 |
[운영체제] OS 소개(2) (0) | 2024.03.31 |