컴퓨터의 성능 향상 기준
- Throughput (처리율) — job/sec
- Utilization - % of time busy
- Response time - sec / job
Operating System 이란?
OS 는 유저 프로그램을 실행할 수 있도록 해준다. 컴퓨터 시스템을 사용하기 편리하게 만든다. 컴퓨터 하드웨어를 효율적으로 사용할 수 있도록 한다.
OS는 자원할당자이다.
OS 도 프로그램이다.
모든 프로그램은 메모리에 올라와야 실행된다. kernel은 항상 메모리에 있는 프로그램
<System Bus>
****CPU와 각종 디바이스 컨트롤러는 버스로 연결되어있다. 공유 메모리에 접근하기 위해서
bus는 동시에 여러 장치가 데이터를 공유할 수 없다. Date bus , Address Bus, Control Bus 가 존재함.
각각의 I/O 장치는 바로 버스에 연결되어있지 않고 controller를 통해서 연결되어 있다. Controller는 PC 구매시 안에 들어있다.
<boot>
하드디스크에 있는 boot sector에 있는 OS 이미지 파일을 메인메모리에 적재한다.
- 디스크의 OS 커널을 찾는다
- OS 커널을 메모리에 로드한다
- OS 실행을 시작한다
OS는 전기가 꺼져도 지워지지 않는 하드디스크나 SSD에 저장된다.
<Storage>
register - cache - main memory - nonvolatile memory - hard-disk drives - optical disk - magnetic tape
assess time 이 점점 느려진다. 저장공간이 점점 커진다.
caching : 느린 메모리에서 빠른 저장시스템으로 정보를 copy하는 것. 자주 사용되는 information이 복사되는 것
main memory : CPU가 직접 접근 가능함. 랜덤 엑세스. volatile하다. (RAM,DRAM)
Hard-Disk Drives (HDD)
Solid-state disks(SSD) : 하드디스크보다 빠르고, nonvolatile 하다.
주요 구성 요소
- Process Management
프로세스는 실행중인 프로그램. 프로세스에게 적절한 CPU time, memory, I/O 디바이스 등 메모리에 들어가기 위한 자원 등 작업을 수행하기 위해 자원이 필요하다.
(CPU 안의 레지스터는 다음에 실행할 명령어를 담고 있다.)
프로세스는 순차적으로 명령어를 수행한다.
- process management
- process Synchronization : 영향을 주고받는 프로세스들의 동기화 ex > 크롬 새 탭
2. Memory Management
- 메인메모리
- 가상메모리
3. File-System Interface : 물리적인 요소를 논리적인 저장공간으로 추상화하는 것
4. Mass-storage Structure : Disk 등등
5. I/O systems
6. OS Security
컴퓨터 구조
single general-purpose processor vs Multiprocessors
멀티프로세서의 장점
- 처리율 향상
- 신뢰성 향상 - 결함 허용 (프로세서가 많으니까 한 군데서 결함이 나도 크게 문제 없다)
멀티프로세서의 종류
- Asymmetric Multiprocessing : 각각의 프로세스가 특정 업무를 수행한다
- Symmetric Multiprocessing : 각각의 프로세스가 모든 업무를 나누어 수행한다.
Von Neumann 구조 1.35
명령어 패치와 데이터 연산은 같은 시간에 발생할 수 없다. 같은 버스를 공유하기 때
Stored Program
프로그램은 메인 메모리에 이런식으로 로드된다.
text : program code
data : 전역변수, static 변수 (프로그램 시작 전에 자리를 잡고 시작하는 것이다)
heap : 동적 할당 메모리 malloc()
stack : 지역변수, 함수, 리턴 주소 (함수 호출할 때 만들어졌다가 종료하면 사라진다)
멀티 프로그래밍 vs 멀티태스킹 vs 멀티 프로세싱 vs 멀티 스레딩 vs 멀티 코어
멀티 프로그래밍 : 한 프로세스가 I/O 인터럽트를 처리할 때 CPU 시간을 낭비하지 않고 다른 프로세스를 처리할 수 있도록 해줌. 작업이 메모리에 유지되어야 한다.
멀티태스킹 : (time sharing) CPU가 스케줄링에 의해 다수의 작업이 번갈아가면서 진행되는 것이다. 응답시간이 1초 미만이 되도록 한다.
멀티 프로세싱 : 다수의 프로세서가 다수의 작업을 함께 처리하는 것이다.
멀티 스레딩 : 하나의 프로세스를 다수의 스레드로 나누어 자원을 공유하는 등 수행 능력을 향상시키는 것
멀티 코어 : 프로세서 안에 CPU core를 여러개 두어 성능을 향상시킴
UMA VS NUMA
메모리에 접근속도 일정 vs 모든 메모리 접근 속도가 동일하지 않은 것
Distributed Systems
- 메모리 공유 x
- global clock x
컴퓨터 시스템 환경 - 예전이랑 많이 바뀜
- Client-server Computing
- Peer-to-Peer
- mobile smartphone, tablet
- Cloud Computing - SaaS(Software as a Service) ex) word processor, Paas(Platform as a Service) ex) database server, IaaS(Infrastructure as a Service) ex) virtual machine
Virtualization - 가상화 like virtual machine
Real time Embedded Systems - real time OS like VxWorks . 시간 제약 안에 실행되어야 하는 시스템으로, 시간을 정확히 설정하는 것이 중요하다.
'CS지식 > 운영체제' 카테고리의 다른 글
운영체제 : Synchronization (0) | 2023.09.23 |
---|---|
운영체제 : CPU 스케줄링 간단 정리 (0) | 2023.09.23 |
운영체제 : Thread 란? (0) | 2023.09.23 |
운영체제 : Process란? (개념, 용어 정리) (0) | 2023.09.23 |
OS 구조 (0) | 2023.09.23 |