운영체제란?
- 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고, 지원하는 SW
- 자원 관리자
- HW 존재를 상세히 몰라도 SW적으로 사용가능하게한다.
- HW숨기기 위해 SW적으로 추상화한다.
- HW를 추상화 → HW를 클래스,구조체로 정의
- CPU MEMORY DISK를 구조체로 Process, VirtualMemory, FileSystem으로 만든다.
- HW 자원을 적절히 관리하여 여러 프로그램이 동시에 실행될 수 있도록 하며, 프로그램끼리 상호작용할 수 있도록 한다.
- OS는 kernel 함수를 이용해 HW를 관리하며, 사용자는 kernel 함수를 직접 호출하지 않고, system call을 사용하게 된다.
- OS가 부팅될 때 메모리에 올라가 상주하는 소스코드 부분을 커널이라고 한다.
운영체제의 역할
- 메모리를 공유하고 디바이스와 상호작용하는등의 작업을 대신 함으로 사용자가 프로그램을 쉽게 돌리게하는 SW이다.
- 실제로 HW가 어떻게 작동하는지를 숨기고(가상화), 사용자가 간단하게 사용할 수 있는 관리 도구를 제공(추상화)한다.
- 시스템이 사용하기 쉬운 방식으로 정확하고 효율적으로 작동하는지 확인하는 SW
추상화
- HW를 SW로 표현하는것
- 자원을 관리하는 SW
- CPU → Process
- Memory → Virtual Memory
가상화
- 여러개의 프로세스가 동시에 수행되는 것처럼 가상화 사용
- 실제 생김새나 기능을 사용자에게 숨겨 구조 등을 착각하게 만듦
- OS는 물리적자원을 보다 일반적이고 강력하며 사용하기 쉬운 가상형식으로 변환
- CPU → 프로그램마다 별도의 CPU를 모두 보유한 것처럼 보이게 함 (Context Switch)
- Memory → 프로그램마다 별도의 Memory를 모두 보유한 것처럼 보이게 함 (Share Memory)
CPU 가상화
- 단일 CPU를 많은 수의 CPU가 있다고 보이게함.
- 여러개의 프로그램이 동시에 수행 → 겉보기에 한번에 실행되는 프로그램은 우리가 CPU가상화라고함.
- 사용자와 OS가 상호 작용하는 방법 제공
메모리 가상화
- 마치 실행중인 각 프로그램에 고유한 각자 메모리가 있는 것 같이 보이게함(프로세스별)
- 가상주소는 같으나 물리주소는 다르다
- OS는 이렇게 가상의 memory 주소와 물리적 memory 주소를 mapping하는 역할을 수행한다.
- 요즘은 HW CPU가해줌 더빨라서
- 하나의 실행 프로그램 내의 메모리 참조는 다르프로세스의 주소공간에 영향을 미치지 않는다.
Concurrency
- 병행성 문제
- 프로세스간 전환이 일어날때 항상 원자적으로 실행되지 않는다. 같은조건에서 프로세스 실행해도 값이 다를 수 있다.
Persistence
- 지속성
- 파일 시스템으로 추상화(자료구조로) 되나 그냥 하나로 보여준다(가상화 안됨)
- 파일 시스템은 사용자가 생성한 모든 파일 안전하게 저장
시스템콜은 컴파일 시 커널의 함수를 호출한다.
'Operating System' 카테고리의 다른 글
[Operating System] 공평한 스케줄러 (0) | 2022.12.28 |
---|---|
[Operating System] MLFQ Multi-level Feedback Queue Scheduling (2) | 2022.12.28 |
[Operating System] 스케줄링 (0) | 2022.12.19 |
[Operating System] 프로세스 실행 (0) | 2022.12.19 |
[Operating System] 프로세스 (0) | 2022.12.19 |