운영체제
응용과 컴퓨터 하드웨어 사이에 위치하는 레이어
운영체제 역할
- 프로그램의 구동 및 운영을 쉽게 할 수 있도록 함
- 프로그램들이 자원을 공유할 수 있도록 함
- 프로그램들이 디바이스와 interaction을 할 수 있도록 함
운영체제와 하드웨어
- CPU : 입력된 데이터를 가지고 code (혹은 프로그램) 실행
- Memory : 디스크로부터/에 코드와 데이터 읽기/쓰기 작업 수행
- Disk(Storage) : 코드와 데이터를 반영구적으로 저장
위 협업에 운영체제가 직접 관여
운영체제 설계 목표
추상화 (Abstraction) | 시스템을 사용 및 관리하기 쉽도록 함 |
성능 최적화 (Performance) | - 효율성(Efficiency) 제한된 자원하에서 최선의 성능 도출 - 공정성 (Fairness) 특정 프로그램으로의 자원 할당 편중 방지, 자원 사용의 공정성 |
보호 (Protection) | - 응용간의 할당 메모리 영역 침범 방지 - 특정 응용의 CPU 자원 독점 방지 - 특정 응용의 OS 권한 명령어 실행 방지 |
기타 | 보안 (Security) 신뢰성 (Reliability) 에너지 효율성 이동성 |
컴퓨터 시스템 구조
1) CPU 스케줄링
프로세스에게 CPU 시간 할당
- Throughput(처리량) 최대화
- Fairness 최대화
1. 멀티프로그래밍 / 멀티 태스킹 처리
- 다중 사용자가 하나의 컴퓨터에서 응용처리를 수행하는 경우,
자원 이용률 최대화 할 수 있도록 CPU 자원을 효율적으로 할당, 관리 - 다중 프로세스가 하나의 컴퓨터 위에서 수행되는 경우 동시에 처리돼야함
2. 시분할(Time-sharing) 처리
- 멀티태스킹 달성하기 위해 사용하는 기법
- 임의의 길이를 가지는 시간 슬롯(Time slot)을 정의해 각 프로세스 혹은 각 스레드에 할당
- 각 프로세스 혹은 각 스레드는 시간 슬록 만큼만 자원 점유
- 할당된 시간이 지나면 점유된 자원은 다른 프로세스 / 스레드에게 사용권이 남겨짐
- 시간 슬롯이 충분히 짧다면 각 프로세스는 자기 혼자 컴퓨터를 사용하는 것과 같은 효과 달성
- 다중 프로세스가 동시에 처리되는 것처럼 간주됨
- CPU와 I/O 장치간의 접근 속도 차이를 이용
2) 메모리 관리
- 물리, 가상 메모리 주소 매핑
- 페이징
Virtual memory 관리 방식
- Physical memory 외에 각 프로세스를 위한 Virtual memeory 주소 공간 정의
- OS는 Physical memory와 Virtual memeory 주소 공간 mapping
- 프로세스는 Virtual memory에 가상적으로 적재되고,
실제 사용되는 부분만 Physical memory에 실적재됨 - Physical memeory에 적재되지 않는 부분은 디스크의 Swap area에 저장
3) I/O 관리
I/O는 CPU보다 느리다
-> I/O처리 위해 프로세스가 대기하는 상황 발생할 수도 있다.
-> 전체 시스템 저하가 발생할 수도 있다.
-> 이걸 막기 위해 CPU 이용률(서버 자원 이용률) 최대화하는 효과 달성 위해 I/O 관리 수행
I/O 관리
- 인터럽트를 이용한 I/O 처리 서비스 요청
- 디바이스 컨트롤러가 인터럽트 발생 시 OS는 현 작업 상태 저장
- CPU는 인터럽트 처리 루틴을 수행
- 인터럽트 처리 완료 후 직전 수행중이던 작업을 재개
CPU 이용률 최대화
- CPU의 계산 속도 : 초당 수십억개의 instructions 처리
- I/O 접근 속도 : CPU와 비교해 수천배 이상 느림
- CPU와 I/O 장치의 속도 차이를 고려한 스케줄링 수행
'학교 > 운영체제' 카테고리의 다른 글
[운영체제] 2. 운영체제 구조 (0) | 2023.01.09 |
---|---|
[운영체제] 1. 서론 (0) | 2023.01.07 |
[OS] 3. Operating System Structures (0) | 2022.05.24 |
[OS] 2-2. Computer Structures (0) | 2022.05.24 |
[OS] 2-1. 운영체제의 종류 (0) | 2022.05.24 |