운영체제의 개념과 구조
A computer system can be divided roughly into four components:
- the hardware,
- the operating system,
- the application programs,
- user
운영체제는 어플리케이션과 하드웨어를 연결해 주는 역할을 한다.
운영체제의 정의
- 운영체제의 보편적인 정의는 없다
- 흔히 'kernel'이라고 하는, 항상 컴퓨터에서 작동하는 프로그램을 운영체제라고 한다
Kernel: 응용 프로그램이나 주변 장치가 올바르게 작동하도록 통제하고 디스크나 메모리 등의 자원을 배분하거나 응용 프로그램의 실행 등을 처리한다
전통적인 컴퓨터 시스템의 구성 요쇼
- 하나 이상의 CPU
- 'bus'를 통해 연결된 여러 개의 장치 제어기(Graphics adapter, USB controller, Disk controller)
Bus: 중앙처리장치와 주기억장치, 입출력장치간에 정보를 전송하는 데 공용으로 사용하는 전기적 통로
Bootstrap
- 컴퓨터가 켜질 때 작동되는 프로그램. 디스크에 저장된 운영체제를 메모리에 로드하는 역할을 한다
Interrupts
- 컴퓨터 작동 중 문제가 발생한 경우라도 업무 처리가 계속될 수 있도록 하는 기능
- 실행 중인 프로그램을 일시 중단하고 다른 프로그램을 끼워 넣어 실행시키는 것
폰 노이만 아키텍쳐(von Neumann)
- 명령 레지스터(Instruction register)를 메모리에 로딩하면 CPU가 불러오고 실행하는 구조
명령 레지스터(Instruction register): 중앙 처리기의 제어 부분에 의해 해독되는, 수행 명령어를 가지고 있는 레지스터.
메모리 계층구조
- 메모리 계층구조란 메모리를 용량과 속도에 따라 여러 종류로 나눈 것이다
입출력 구조(I/O Structure)
입출력 구조를 도식화 하면 다음과 같다. 입출력 구조에서 기억해 둘 것은 데이터를 교환할 때 이용하는 BUS가 같다는 것이다. 따라서 데이터의 양이 적을 때는 문제가 없지만 데이터의 양이 많아지면 대기시간이 발생할 수 있다. 이를 해결하는 방식이 DMA 방식이다.
Cache: 주기억 장치에 읽어들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억 장치
DMA(Direct memory access): 기억 장치와 주변 장치 간의 데이터 교환 시 중앙 처리 장치(CPU)를 통하지 않는 직접 접속으로 고속 데이터를 전송하는 방식
Thread: 프로세스(process) 내에서 실제로 작업을 수행하는 주체
컴퓨터 시스템 요소의 정의
CPU(중앙처리장치): 명령을 실행하는 장치
Processor(프로세서): 최소 하나 이상의 CPU를 포함한 물리적인 칩
Core(코어): 각종 연산을 담당하는 CPU의 핵심 요소
멀티프로그래밍(Multiprogramming)
- 2개 이상의 프로그램을 주기억장치에 기억시키고, 중앙처리장치를 번갈아 사용하는 처리기법
- CPU의 효율을 높일 수 있음
- 멀티프로그래밍을 통해 멀티테스킹을 수행한다
멀티태스킹(Multitasking)
다수의 작업(Task)을 운영체제의 스케줄링에 의해 번갈아 가며 수행되도록 해주는 것
운영체제의 두 가지 모드
각 프로그램들이 다른 프로그램의 실행을 방해하거나 프로그램 간에 서로 충돌을 일으키는 문제를 막기 위한 기법. User Mode와 Kernel Mode로 나뉘며, 프로그램이 작동하는 동안 두 가지 모드를 필요에 따라 번갈아가며 실행한다.
User Mode
- 사용자 어플리케이션 코드를 실행
- 시스템 데이터에 제한적으로 접근할 수 있으며 하드웨어에 직접 접근 불가
- 시스템 콜 시 유저 모드에서 커널 모드로 잠시 전환
Kernel Mode
- 모든 시스템 메모리에 접근할 수 있고 모든 종류의 명령을 실행할 수 있다
- 시스템에 중요한 영향을 미치는 연산은 커널 모드에서만 실행함으로써 하드웨어의 보안을 유지
가상화(Virtualization)
단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술
시스템 콜(SystemCall)
- 응용프로그램이 운영체제에 특정 기능을 수행해 달라고 하는 수단 - CLI와 GUI, Touch-Screen Interface이 있다 - OS의 API라고 볼 수 있다
'운영체제 > 공룡책' 카테고리의 다른 글
3. 프로세스의 이해 (0) | 2022.03.15 |
---|---|
1. 운영체제란 무엇인가 (0) | 2022.03.08 |