운영체제(OS, Operating System)란
사용자에게 편리한 인터페이스 제공하고, 컴퓨터 시스템의 자원을 효율적으로 관리하는 SW
ex) 윈도우, MacOS, 리눅스, 유닉스, iOS, 안드로이드 등
❓펌웨어란
하드웨어 장치에 내장되어 하드웨어를 직접 제어하고 초기화하는 저수준 소프트웨어
⇒ 운영체제는 응용프로그램을 실행하는 환경을 제공, 펌웨어는 하드웨어 자체를 동작시키고 운영체제를 부팅하는 데 필수적인 역할
운영체제 역할
- CPU 스케줄링과 프로세스 관리
CPU 소유권을 어떤 프로세스에 할당할지, 프로세스 생성과 삭제, 자원 할당 및 반환 관리 - 메모리 관리
한정된 메모리를 어떤 프로세스에 얼만큼 할당할지 관리 - 디스크 파일 관리
디스크 파일을 어떠한 방법으로 보관할지 관리 - I/O 디바이스 관리
I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리
운영체제 구조
- GUI: 명령어가 아닌 아이콘으로 컴퓨터와 상호작용하는 인터페이스
- CUI: 명령어로 컴퓨터와 상호작용하는 인터페이스
- 시스템콜: 운영체제가 커널에 접근하기 위한 인터페이스 → 커널 함수 호출 시 사용
- 시스템콜은 응용프로그램과 커널의 인터페이스 역할
- 커널: 프로세스 관리, 메모리 관리, 저장장치 관리 등 운영체제의 핵심적인 기능을 모아놓은 것
- 커널은 사용자나 응용프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단
즉, 자원 접근을 위해서는 시스템콜 인터페이스를 이용해 접근해야함
- 커널은 사용자나 응용프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단
- 드라이버: 하드웨어 제어하기 위한 소프트웨어
- 드라이버는 커널과 하드웨어의 인터페이스 역할
[동작 원리]
- 유저 프로그램이 I/O 요청 시 올바른 I/O 요청인지 확인
- 시스템콜을 통해 유저모드가 커널모드로 변환
❗️커널 모드로 변환하여 작업을 수행해 컴퓨터 자원에 대한 직접 접근 차단 가능 - 커널모드로 해당 요청 처리 후 다시 유저모드로 변환
[modebit이란?]
modebit: 1 또는 0의 값을 가지는 플래그 변수(커널 모드: 0, 유저모드: 1)
시스템콜 작동시 modebit 참고해서 유저모드와 커널모드 구분
⇒ 카메라, 키보드 등 I/O 디바이스는 운영체제를 통해서만 작동해야 함! 사용자가 의도하지 않은 공격을 방지
컴퓨터 요소
- CPU(Central Processing Unit)
산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치로, 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해 실행하는 일꾼
⇒ 운영체제의 커널이 프로그램을 메모리에 올려 프로세스로 만들면 CPU가 이를 처리
제어장치(CU, Control Unit)
프로세스 조작을 지시하는 CPU의 한 부품으로, 입출력장치 간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서 결정
레지스터
CPU 안에 있는 매우 빠른 임시기억장치로, CPU는 자체적으로 데이터 저장할 방법 없기 때문에 레지스터를 거쳐 데이터 전달
- CPU와 직접 연결되어 있어 연산 속도가 매우 빠름
산술논리연산장치(ALU, Arithmetic Logic Unit)
덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 AND, OR 같은 논리 연산 수행
[CPU의 연산 처리]
1. 제어장치가 메모리로부터 레지스터에 필요한 데이터 로드
2. 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명령
3. 제어장치가 레지스터에 저장된 계산된 값을 다시 메모리로 저장
인터럽트
어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것
ex) 키보드, 마우스 등 I/O 디바이스로 인한 인터럽트, 0으로 숫자 나누는 산술 연산에서의 인터럽트, 프로세스 오류
- 인터럽트 간에는 우선순위 존재, 즉 우선순위에 따라 실행
- 하드웨어 인터럽트: 키보드 연결 혹은 마우스 연결 등 I/O 디바이스에서 발생하는 인터럽트
- 소프트웨어 인터럽트(=트랩): 프로세스 오류 등 프로세스가 시스템콜 호출할 때 발동 - DMA 컨트롤러
I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
- CPU 부하를 줄여 시스템 성능 향상
- 하나의 작업을 CPU와 DMA 컨트롤러가 동시에 하는 것을 방지
DMA(직접 메모리 접근)
CPU를 거치지 않고 주변장치가 시스템 메모리에 직접 접근할 수 있는 하드웨어 기능
⇒ DMA 컨트롤러가 수행
[기본적인 입출력 제어 방식과 DMA 방식]
기본적인 입출력 제어 방식
DMA 방식
[DMA 작동 방식]
1. DMA 연산이 발생하면 DMA 컨트롤러는 주변장치와 메모리 간의 데이터 전송 관리
2. 주변장치가 데이터를 전송할 준비가 되면, DMA 컨트롤러는 메모리 주소 지정하고 데이터 전송 시작
→ 이때, CPU는 관여 X
3. 데이터 전송이 완료되면, DMA 컨트롤러는 CPU에 인터럽트를 보내 전송이 완료되었음을 알림
- 메모리
전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치
- 보통 RAM을 메모리라고 함 - 타이머
특정 프로그램에 시간 제한을 거는 역할
- 시간이 많이 걸리는 프로그램 작동 시 사용 - 디바이스 컨트롤러
컴퓨터와 연결되어 있는 I/O 디바이스들의 작은 CPU
'면접을 위한 CS 전공지식 노트 > 3장 운영체제' 카테고리의 다른 글
운영체제: CPU 스케줄링 알고리즘 (1) | 2024.09.19 |
---|---|
운영체제 : 메모리 (0) | 2024.09.19 |
운영체제: 프로세스와 스레드 2 (0) | 2024.09.18 |