운영체제(OS, Operating System)란?
컴퓨터 하드웨어를 관리하는 소프트웨어이며 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 하여 한정된 메모리나 시스템 자원을 효율적으로 분배한다. 운영체제의 목적은 사용자가 프로그램을 편리하고 효율적으로 수행할 수 있는 환경을 제공하는 데 있다.
Section 1. 운영체제와 컴퓨터
3.1.1 운영체제의 역할과 구조
운영체제의 역할
- CPU 스케줄링과 프로세스 관리: (1) CPU 소유권을 어떤 프로세스에 할당할지 (2) 프로세스의 생성과 삭제 (3) 자원 할당 및 반환 관리
- 메모리 관리: 프로세서에 메모리 할당 관리
- 디스크 파일 관리: 디스크 파일 보관 방법 관리
- I/O* 디바이스 관리: 마우스, 키보드와 컴퓨터 간 데이터 송수신 관리
*I/O: I/O는 입출력(Input/Output)을 의미한다. 간단히 말해서 I/O는 컴퓨터가 외부 세계와 통신하는 방식을 나타낸다. 이러한 통신은 프린터, 키보드, 마우스, 모니터 등과 같은 주변 장치는 물론 네트워크나 데이터베이스와 같은 기타 시스템과의 데이터 송수신을 통해 발생한다.
운영체제의 구조
용어
- GUI: 그래픽 사용자 인터페이스. 사용자가 전자장치와 상호 작용할 수 있도록 하여 '클릭'과 같은 단순 동작으로 컴퓨터와 상호 작용할 수 있도록 함
- 드라이버: 하드웨어를 제어하기 위한 소프트웨어
- CUI: 사용자가 자연어 대화를 통해 컴퓨터 시스템이나 소프트웨어와 상호 작용할 수 있는 기술. 사용자가 음성 언어, 텍스트 기반 챗봇 또는 음성 비서를 사용하여 컴퓨터와 소통할 수 있게 함.
시스템콜
운영체제가 커널*에 접근하기 위한 인터페이스이다. 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용한다. OS는 다양한 서비스들을 수행하기 위해 하드웨어를 직접적으로 관리한다. 이와 반면 응용 프로그램은 OS가 제공하는 인터페이스를 통해서만 자원을 사용할 수 있다. OS가 제공하는 이러한 인터페이스를 '시스템 콜 (system call)' 이라고 한다.
시스템콜은 이러한 커널 영역의 기능을 사용자 모드가 사용 가능하게, 즉, 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 할 수 있게 해준다. (즉, 응용프로그램은 시스템 콜을 사용해서 원하는 기능을 수행할 수 있음.) 이 과정을 통해 컴퓨터 작원에 대한 직접 접근 차단이 가능하고, 다른 프로그램으로부터의 프로그램 보호가 가능하다. - [참조] https://didu-story.tistory.com/311
*커널: 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라가면 한정된 메모리 공간이 낭비가 심할 것이다. 따라서 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 된다. 이때 메모리에 상주하는 운영체제의 부분을 kernel(커널)이라고 한다. 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할을 한다.
CPU 모드
CPU는 사용자 애플리케이션 (User application)이 시스템을 손상시키는 것을 방지하기 위해 2가지 모드를 제공한다. CPU에 있는 Mode bit로 모드를 구분하여 0은 '커널모드(kernel mode)', 1은 '사용자모드 (user mode)'로 나뉘어서 구동된다.
유저 모드 | 커널 모드 |
유저가 접근 가능한 영역 제한 컴퓨터 자원에 함부로 침범하게 하지 못하게 하는 모드 |
모든 컴퓨터 자원에 접근할 수 있으며 운영체제(OS)가 CPU를 사용하는 모드이다. 시스템 콜을 통해 커널모드로 전환이 되면 운영체제는 하드웨어를 제어하는 명령어(Privileged Instructions)를 실행한다. |
ex)
3.1.2 컴퓨터의 요소
- CPU(Central Processing Unit)
- 산술논리연산장치, 제어장치, 레지스터로 구성된 컴퓨터 장치
- 인터럽트로 메모리에 있는 명령어를 해석해서 실행하는 '일꾼'
- CPU의 부품
- 제어장치(CU, Control Unit): 데이터 처리를 위한 순서를 결정(입출력장치 간 통신 제어, 명령어 읽고 해석)
- 레지스터: 매우 빠른 임시기억장치. CPU는 레지스터를 거쳐 데이터를 전달함(CPU 자체적 데이터 저장 불가)
- 산술논리연산장치(ALU, Arithmetic Logic Unit): 산술 연산, 논리 연산 계산하는 디지털 회로
- CPU의 연산 처리
- 제어장치가 메모리, 레지스터에 계산할 값을 로드한다
- 제어장치가 레지스터에 있는 값을 값 계산을 산술논리연산장치에 명령한다
- 제어장치가 계산된 값을 레지스터에서 꺼내어 다시 메모리에 저장한다.
- '인터럽트' 상태
- 어떤 신호가 들어와 CPU가 인터럽트 되면, CPU는 하던 일을 중단하고 즉시 고정된 위치로 실행을 옮긴다.
- 인터럽트 벡터(인터럽트 핸들러 함수가 모여 있음)로 가서 인터럽트 핸들러 함수가 실행됨.
- 인터럽트는 우선순위에 따라 실행됨
- 하드웨터 인터럽트: IO 디바이스에서 발생하는 인터럽트. 운영체제에 시스템콜을 요청해 원하는 디바이스에 있는 작은 로컬 버퍼에 접근하여 일 수행
- 소프트웨어 인터럽트(트랩, trap): 프로시스 오류 등으로 프로세스가 시스템콜을 호출할 때 발동종류
- CPU의 부품
- DMA 컨트롤러
- I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
- CPU 인터럽트 요청 과다로 인한 CPU 부하를 막아 CPU 일을 부담하는 보조 일꾼이며, 하나의 작업을 CPU와 DMA 컨트롤러가 동시에 하는 것을 방지
- 메모리(RAM, Random Access Memory)
- 전자회로에서 데이터, 상태, 명령어 등을 기록하는 장치. 기억을 담당한다.
- 타이머
- 프로그램(특히, 시간이 많이 걸리는)에 시간 제한을 다는 역할
- 디바이스 컨트롤러
- 컴퓨터와 연결되어 있는 IO 디바이스들의 작은 CPU
- + 붙어있는 '로컬 버퍼': 디바이스에서 데이터를 임시로 저장하기 위한 작은 메모리
- 컴퓨터와 연결되어 있는 IO 디바이스들의 작은 CPU
'Development > CS' 카테고리의 다른 글
[면접을 위한 CS 전공 지식 노트] 3.3 프로세스와 스레드 (0) | 2025.01.15 |
---|---|
[면접을 위한 CS 전공 지식 노트] 3.2 메모리 (0) | 2025.01.15 |
네트워크 심화 공부 - IP, 너 누구야 (0) | 2025.01.10 |
[면접을 위한 CS 전공 지식 노트] 2.5 HTTP (0) | 2025.01.08 |
[면접을 위한 CS 전공 지식 노트] 2.4 IP 주소 (0) | 2025.01.08 |