운영체제란 ?
컴퓨터라는 하드웨어를 운영하는 소프트웨어
1. Ubiquity of Computing Devices
산재 되어있는 Computing Devices
Computing Devices은 운영체제가 반드시 필요
2. Complexity is Our Enemy →”너무" 다양한 것이 문제다.
다양성에 따른 처리해야 할 것이 너무 많다.
Diversity of Hardware( and Standards)
- CPU : ISA, cache size, clock speed
- Memory size, type, disk size, type
- I/O devices : keyboard, mouse, touchapd, camera ...
- Network : wifi, wired, 5G, ...
- Interfaces : USB,type-c,PCI,Bluetooth,zigbee, ...
Diversity of Software to run
- Text editor, Calculartor, game ,web browser, ...
계속 업데이트 되면서 점점 커지고, 바뀌면서 더 문제가 됨
3. What is an Operating System?
- 하드웨어를 관리( manage ) 하는 프로그램
- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 중간자 역할 ( 하드웨어 —— 운영체제 —— 유저 (복잡한 detail을 알 필요는 없음) )
- OS의 목표
- 유저 프로그램을 실행하고 user problems 해결을 쉽게 해줌
- Computer system을 사용하기 편하게 해줌
- computer H/W를 효율적으로 쓸 수 있게 해줌
4. Abstract View of Computer System
- Computer System Components ( 컴퓨터 시스템 구성요소)
- H/W, OS, Applications, Users
User ↔ System and application programs ↔ OS ↔ Computer Hardware
- 어플리케이션은 컴퓨터 하드웨어와 직접적으로 연결되지 않음
5. O.S View Points (관점)
User View
- Home PC user
- 주요 목적은 사용하기 쉬움이다.
- Resource utilization(자원의 사용퍼센트) 는 고려의 대상이 아님
- Mainframe / minicomputer ( 대형 컴퓨터 )
- Resource utilization을 maximize ( 100%로 유지하려는 , 사용자의 편의와는 상관 X )
- WorkStation ( 서버급 컴퓨터)
- Dedicated resource per user, but connected to shared resources : 공유된 자원을 잘 쓰도록 함이 목적
- Mobile devices
System View
- Resource allocator : 자원 분배를 조율
- Resource: CPU, memory, storage, I/O devices, ...
- Handle conflicting requests :충돌이 나는 경우 조율
- Control program: 통제
6. Definition of OS
Entire package consisting of the central S/W that manages resources and the accompanying S/W tools
7. Computer System Organization
- CPU : 계산
- Memory : 프로그램들과 데이터
- I/O devices : disk, monitor,printers, Networtk 등등
- System bus : communication channel
- CPU와 device controllers는 평행하게 실행된다.
- memory controller가 엑세스를 동기화
8. OS가 필요할 때
- 각각의 유저들은 프로그램을 돌린다.
- 모두가 프린트를 사용할 때 → OS가 할 일 : 줄 세우기 (FIFO 등등 )
- 모두가 메모리를 원할 때 → OS가 할 일 : allocator( 조율 ) 의 역할
- 다른 것의 데이터를 훔쳐보려고 할 때 → OS가 할 일 : 보안 쪽 문제 (OS가 막아줘야 함)
- 프로그래머가 쓰길 원할 때
- 어떠한 laptop에도 쓸 수 있게 → 표준화 필요
- 많은 파일을 관리하고 싶을 때
- 다른 컴퓨터와 communicate하는 프로그램을 만들고 싶을 때
- Owner가 원하는 것은
- CPU와 memory의 남용 방지
- 새로운 디스크를 추가할 때 → OS가 새로 해줘야 함
- 네트워크에서 와이파이로 바꿀 때 → ( ex) 동영상 스트리밍 중 네트워크에서 와이파이 변환 등 )
9. Computer Operations
- Start-Up : 부팅 시
- Bootstrap program: 컴퓨터가 실행될 때 제일 처음 시작되는 프로그램 ( OS 아님 )
- ROM이나 EEPROM(펌웨어)에 저장되어있음 → 고정 메모리 영역 (OS와 별도, 부팅 시 무조건 켜짐)
- CPU registers, device Controllers, Memory를 초기화
- OS kernel를 시작하고 부팅 → 약속된 장소에서 기계적으로 읽어서 OS인지 모르지만, OS가 실행 되는 것
- System daemons : 컴퓨터가 가동되면, 백그라운드에서 계속 실행 ( 무한 루프, 종료하지 않음 )
- 커널이 백그라운드에서 실행되는 동안 전체 실행
- “init”이 첫번째 process (처리) → 이것이 많은 다른 데몬들을 시작시킴
10. Computer Operations
-
Interrupt : 간섭
- CPU가 하던 일을 멈추고, interrupt handler가 작동하도록 하는 event
-
H/W interrupt
- timer, keyboard, mouse(좌표마다),DMA
-
S/W interrupt = systemcall
-
interrupt handling은 CPU의 key function
-
interrupt vector: interrupt handler의 주소들의 리스트 (순서대로 핸들링 하기 위해서)
-
interrupted instruction의 주소를 저장, register state도 저장 ( ⇒ interrupt 로 넘어가기 이전의 것들을 기억)
11. interrupt Timeline
I/O request → CPU에서 idle로 명령 → I/O device가 transferring ( 버스를 통해 ) → I/O interrupt processing
12. Storage Structure
- 프로그램을 실행하려면 메모리 로드해야 함.
- Memory: RAM ( = CPU와 연동되는 장치)
- load/store instruction
- 폰 노이만 아키텍쳐
- instruction(명령) 과 data(데이터) 가 같은 메모리에 저장되어있음, single link to the CPU
- CPU can have multiple functional units
- Memory access can be enhanced by use of cache
- Secondary storage
- 대게 HDD 의미
- main memory가 volatile이고 매우 작기 때문에 필요
13. Storage Structure
- Storage device hierarchy
- SSD = faster than HDD and non- volatile
- NVRAM
14. I/O structure
- Device controller
- CPU는 device controller들과 common bus를 통해 연결 됨 (SCSI controller)
- 이 컨트롤러 안의 자체의 버퍼, 특별한 목적의 register가 있다(각양각색)
- data in/out을 책임 짐
- OS는 device driver를 가지고 있다.
- device driver는 다양한 controller에 상호작용하기 위해 필요한 소프트웨어이며, 각 회사에서 제공하는 것
15. Computer System Architecture
- single-processor Systems
- 하나의 주요 목적 프로세서(CPU) + 특별 목적의 프로세서
- Multiprocessor Systems
- 통신량 증가, but N CPU ≠ N times performance
16. Computer System Architecture
- Asymmetric multiprocessing
- Symmetric multiprocessing (SMP) → CPU끼리의 communicate X
- 모든 프로세서가 peers
- 물리적으로 다른 칩들이 memory 하나와 연결
- Multicore system
- 칩 하나에 코어 여러 개 ,(코어 = CPU 비슷한 말)
- 코어끼리 공유하는 cache가 따로 있음.