프로그램이 실행될 때 어떤 일이 일어날까?
- 프로그램은 매우 단순한 일을 한다 - 그것은 명령어의 실행
- 반입(fetch)
- 해석(decode)
- 무슨 명령어인지 파악
- 실행(execute)
- 두 수를 더하고, 메모리에 접근하고, 조건을 검사하고, 함수로 분기하는 등의 정해진 일
- 프로그램을 쉽계 실행하고, 프로그램 간의 메모리 공유를 가능케 하고, 장치와 상호작용을 가능케 하고, 다양하고 흥미로운 일을 할 수 있게 하는 소프트웨어
- 시스템을 사용하기 편리하면서 정확하고 올바르게 동작시킬 책임이 있다
- 그것을 OS라고 부른다
- supervisor 또는 master control program이라고도 한다.
거의 안씀. 그냥 운영체제
- supervisor 또는 master control program이라고도 한다.
CPU 가상화
하드웨어의 도움을 받아 운영체제가 시스템에 매우 많은 수의 가상 CPU가 존재하는 듯한 환상illusion을 만들어 낸 것
하나의 cpu 또는 소규모 cpu 집합을 무한 개의 cpu가 존재하는 것처럼 변환하여 동시에 많은 수의 프로그램을 실행시키는 것을 CPU 가상화(virtualizing the CPU)라 한다.
메모리 가상화
각 프로세스는 자신만의 가상 주소 공간virtual address space을 갖는다. 운영체제는 이 가상 주소 공간을 컴퓨터의 물리 메모리로 매핑한다. 하나의 프로그램이 수행하는 각종 메모리 연산은 다른 프로그램의 주소 공간에 영향을 주지 않는다. 실행 중인 프로그램의 입장에서는, 자기 자신만의 물리 메모리를 갖는 셈이다.
병행성concurrency
올바르게 동작하는 병행 프로그램은 어떻게 작성해야 하는가
같은 메모리 공간에 다수의 쓰레드가 동시에 실행한다고 할 때, 올바르게 동작하는 프로그램을 어떻게 작성할 수 있는가? 운영체제로부터 어떤 기본 기법들을 제공받아야 하는가? 하드웨어는 어떤 기능을 제공해야 하는가? 병행성 문제를 해결하기 위하여 기본 기법들과 하드웨어 기능을 어떻게 이용할 수 있는가?
영속성persistence
디스크를 관리하는 운영체제 소프트웨어를 파일 시스템이라고 부른다. 파일 시스템은 사용자가 생성한 파일을 시스템의 디스크에 안전하고 효율적인 방식으로 저장할 책임이 있다.
시스템 콜은 운영체제에서 파일 시스템이라 불리는 부분으로 전달된다. 파일 시스템은 요청을 처리하고 경우에 따라 사용자에게 에러 코드를 반환한다.
쓰기 중에 시스템의 갑작스런 고장에 대비해서 많은 파일 시스템들이 저널링journaling이나 쓰기 시 복사copy-on-write와 같은 기법을 사용한다. 이런 기법들은 고장이 발생하더라도, 시스템을 정상 상태로 복구될 수 있게 한다. 이 기법들은 쓰기명령들간에 기록순서를 강제로 보장한다.
더 공부해야 할 주제들
- 네트워크
- 그래픽
- 보안
'컴퓨터 > 운영체제 OS' 카테고리의 다른 글
Cache Memory in Computer Organization - 캐시 (0) | 2024.06.14 |
---|---|
Virtual Memory 가상메모리, 메모리 가상화 (0) | 2024.06.13 |
세마포어는 남녀관계의 추상화다 (0) | 2024.05.30 |
UNIX Process States (0) | 2024.05.27 |
리눅스 런타임 메모리 이미지 (0) | 2024.05.27 |