목차
챕터3. 운영체제
- 운영체제(OS, Operating System): 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스
- 한정된 메모리나 시스템 자원을 효율적으로 분배
- cf) 펌웨어 firmware: 운영체제와 유사, 소프트웨어 추가 설치 불가
1. 운영체제와 컴퓨터
- 하드웨어, 소프트웨어(유저 프로그램) 관리하는 운영체제, CPU, 메모리 등
3.1.1 운영체제의 역할과 구조
- 운영체제의 역할 4가지
- CPU 스케줄링과 프로세스 관리
- 메모리 관리
- 디스크 파일 관리
- I/O 디바이스 관리
- 운영체제의 구조
- 유저 프로그램 → GUI → 시스템콜 → 커널 → 드라이버 → 하드웨어
- 운영체제: GUI, 시스템콜, 커널, 드라이버 부분
- GUI 없고 CUI 만 있는 리눅스 서버도 있음
- 유저 프로그램 → GUI → 시스템콜 → 커널 → 드라이버 → 하드웨어
- 시스템콜
- 운영체제가 커널에 접근하기 위한 인터페이스
- 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용
- 유저 프로그램이 I/O 요청으로 트랩 발동
- 올바른 I/O 요청인지 확인
- I/O 요청: 입출력 함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일
- 유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행
- 이 과정을 통해 컴퓨터 자원에 대한 직접 접근 차단, 프로그램을 다른 프로그램으로부터 보호 가능
- 하나의 추상화 계층 → 낮은 단계의 영역 처리(네트워크 통신, 데이터베이스) 신경 쓰지 않고 프로그램 구현 가능
- modebit
- 시스템콜 작동 시, modebit 참고하여 유저 모드와 커널 모드 구분
- 1 또는 0의 값을 가지는 플래그 변수
3.1.2 컴퓨터의 요소
- 컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어짐
- CPU (Central Processing Unit):
- 산술논리연산장치, 제어장치, 레지스터리로 구성되어 있는 컴퓨터 장치
- 인터럽트에 의해 단순히 메모리에 존재하는 명령어 해석해서 실행하는 일꾼
- 운영체제(관리자 역할) → 커널 → 프로그램을 메모리에 올림 = 프로세스 → CPU(일꾼) 처리
- 제어장치 (CU, Control Unit)
- 프로세스 조작을 지시하는 CPU의 한 부품
- 입출력장치 간 통신을 제어, 명령어들을 읽고 해석, 데이터 처리를 위한 순서 결정
- 레지스터
- CPU 안에 있는 매우 빠른 임시기억장치
- CPU와 직접 연결, 연산 속도가 메모리보다 수십 배~수백 배 빠름
- CPU는 자체적으로 데이터 저장 불가 → 레지스터를 거쳐 데이터 전달
- 산술논리연산장치
- 산술 연산, 논리연산을 계산하는 디지털 회로
- CPU의 연산처리
- 인터럽트
- 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것
- IO 디바이스(키보드, 마우스)로 인한 인터럽트, 0으로 숫자 나누는 산술 연산으로 인한 인터럽트, 프로세스 오류 등으로 발생
- 인터럽트 발생 → 인터럽트 벡터로 가서 인터럽트 핸들러 함수 실행
- 인터럽트 간에는 우선순위 존재, 우선순위에 따라 실행
- 인터럽트는 하드웨어 인터럽트, 소프트웨어 인터럽트 두 가지로 나뉨
- 하드웨어 인터럽트:
- 키보드를 연결한다거나 마우스를 연결하는 일 등의 IO 디바이스에서 발생하는 인터럽트
- 인터럽트 실행 중지 → 운영체제에 시스템콜 요청 → 디바이스에 있는 작은 로컬 버퍼 접근하여 일을 수행
- 소프트웨어 인터럽트:
- 트랩 trap 이라고도 함
- 프로세스 오류 등으로 프로세스가 시스템 콜을 호출할 때 발동
- 하드웨어 인터럽트:
- DMA 컨트롤러
- I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
- CPU에만 너무 많은 인터럽트 요청 → CPU 부하 방지, CPU 의 일을 부담하는 보조 일꾼
- 하나의 작업을 CPU와 DMA 컨트롤러가 동시에 하는 것 방지
- 메모리
- 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치
- RAM(Random Access Memory)을 일컬어 메모리라고도 함
- CPU는 계산 담당, 메모리는 기억 담당
- 공장 비유) CPU는 일꾼, 메모리는 작업장 (작업장이 클수록 창고에 물건 많이 가져다놓고 많은 일 가능 = 메모리 클수록 많은 일 동시에 가능)
- 타이머
- 몇 초 안에 작업이 끝나야 한다는 것을 정하고 특정 프로그램에 시간 제한을 다는 역할
- 시간이 많이 걸리는 프로그램이 작동할 때 제한 걸기 위해 존재
- 디바이스 컨트롤러
- 컴퓨터와 연결되어 있는 IO 디바이스들의 작은 CPU
- 옆에 붙어 있는 로컬 버퍼: 각 디바이스에서 데이터를 임시로 저장하기 위한 작은 메모리를 뜻함
'Boaz > Computer Science' 카테고리의 다른 글
[CS 전공지식 #10] 챕터3-3. 프로세스와 스레드 (0) | 2025.02.17 |
---|---|
[CS 전공지식 #9] 챕터3-2. 메모리 (0) | 2025.02.17 |
[CS 전공지식 #7] 챕터2-5. HTTP (0) | 2025.02.10 |
[CS 전공지식 #6] 챕터2-4. IP 주소 (0) | 2025.02.09 |
[CS 전공지식 #5] 챕터2-3. 네트워크 기기 (0) | 2025.02.09 |