operating system goal
- computer system 효율적 관리
- 편리한 인터페이스
- hw자원 관리
- user program 실행
커널 + 시스템프로그램 = 운영체제
시스템프로그램 = 꼭 깔리는 프로그램 ( 윈도우 탐색기 같은거)
cpu가 i/o 컨트롤하기 위한 controller있음
h/w자원 : resource
이런거 복잡해서 관리 대신해주는게 os
cpu는 명령내리고 다른거 한다.
i/o controller가 일다하면 cpu한테 알려줌 (interrupt)
CPU
Instruction Set Architecture
RISC CISC
reduced 적은 명령어로 복잡한 기능을 구현해서 성능이 CISC보다 좋음.
Dual Mode operation
1. User mode
2. Monitor mode (kernel mode)
I/o 장치 수행 같은건 os가 한다.
trap : cpu가 스스로 인터럽트 거는거
memory protection이나
이상한 연산했을 때 trap으로 os불러서 처리
Timer interrupt 주기적으로 인터럽트 건다.
Parallel System 병렬시스템
보드에 cpu 여러개 달기
장점 : throughput 증가 경제적 신뢰도 보장(하나 고장나도 다른데서 실행)
SMP : 동일한 성능 cpu 사용 (대부분 이거씀)
Asymmetric multiprocessing : 성능좋은 cpu 박고 나머지가 이거 support
Distributed System 분산시스템
보드 위에 cpu들이 네트워크로 연결돼 있다.
각 cpu마다 독립적인데 그것들이 네트워크로 합쳐져서 같은 일을 한다.
Real-Time system
- 보통 pc는 프로그램 수행에 제약시간이 없는데 이건 있는거김
hard 못지키면 난리남
soft 지키는게 좋음 (동영상 재생)
Monolithic Kernel
운영체제의 모든기능 같이 개발됨
ex) unix
커널크기가 커서 작은 기기에는 쓰기 힘듬
Micro kernel
필요한것만 뽑아서 개발
다른기능은 application process로 구현ㄴ
system call : fork같은거
usermode에서는 I/o protection 때문에 직접 제어안한다.
usermode에서 trap걸면 kernel mode로 간다.
언제 os가 실행되냐?
1. 부팅 2. 서비스요청 3. interrupt (hw interrupt, timer interrupt)
cpu는 놀지않는다. 할거없을때는 Idle이 무한루프로 돌아감.
Bootstrapping
처음 부팅되면 fixed location 먼저 실행 rom에 존재
이 명령어가 BIOS/UEFI로 이동시킴
BIOS/UEFI 얘들이 Boot Loader(os를 메모리에 올림)
program : hw에 존재하는 실행파일
process : 그걸 메모리에 올려서 실행시키는 instatnce
process address space
Process state
process control block
context switch
process 여러개는 비효율적
process하나에 여러개의 실행 path를 만들자 -> thread
실행path = PC,SP,Register 등등
thread 추가되면
thread 장점
resource share 편함
효율적임
응답성 좋음.
thread
User-level thread
라이브러리 형태로 가져와서 사용
커널은 thread가 있는지 모름
i/o 빈번하게 사용하면 성능저하(interrupt 생기면 그냥 전체 프로세스 block해버림)
kernel-level thread
kernel에서 thread 지원
thread 별로 state 관리
kernel thread 와 user thread
many to many 방식
5장
i/o bound : i/o 사용량이 많은 프로그램
cpu bound : cpu 사용량이 많은 프로그램
CPU scheduler
schedule 고르기 dispath 고른거 cpu에 올리기
preemptive vs Non-preemptive
선점 비선점
비선점 : ㅡㄱ냥 하던대로
선점 : 우선순위에 따라 중간에 가로채기 가능
'학교공부 > 운영체제' 카테고리의 다른 글
Secondary-Storage Architecture (0) | 2020.06.12 |
---|---|
Implementing File Systems (0) | 2020.06.08 |
Virtual Memory Management-2 (0) | 2020.06.01 |
Virtual Memory Management (0) | 2020.05.29 |
Memory Management Strategies - 3 (0) | 2020.05.25 |