2. 컴퓨터 시스템과 운영체제
컴퓨터 시스템 계층 구조
컴퓨터 시스템 계층
- 사용자
- 응용프로그램
- 운영체제
- 커널 코드
- 운영체제 핵심 부분
- 시스템 자원 관리
- 응용프로그램이 하드웨어 자원을 효율적으로 사용할 수 있도록 돕는 코드
- 디바이스 드라이버
- 하드웨어와 소프트웨어를 연결하는 인터페이스
- 운영체제가 다양한 하드웨어 장치를 제어할 수 있도록 해줌
- 커널 코드
- 하드웨어
컴퓨터 시스템이 계층 구조로 설계된 이유
계층간 독립성 확보를 위해 (칸막이)
- 사용자
- 운영체제나 하드웨어에 대해 몰라도 응용프로그램으로 컴퓨터 활용
- 응용프로그램
- 컴퓨터 하드웨어의 타입이나 구조, 제어 방법을 몰라도 개발 가능
- 운영체제에게 요청하여 해결 (운영체제가 하드웨어를 완벽히 독점 장악, 하드웨어 사용 충돌 방지)
- 운영체제가 없다면 하드웨어를 사용하는 여러 응용프로그램이 충돌할 수 O
- 컴퓨터 하드웨어가 바뀌어도 응용프로그램을 다시 작성할 필요 X
- 운영체제
- 장치와 관련된 모든 작업을 디바이스 드라이버에게 요청
- 응용프로그램과 하드웨어 사이의 인터페이스
운영체제의 전체 기능
- 프로세스와 스레드 관리
- 프로그램이 메모리에 적재되어 실행될 때 프로세스라고 함
- 프로세스는 한 개 이상의 스레드(프로세스 내부의 일꾼)로 구성
- 스레드: 운영체제에 의해 스케줄되고 다루어지는 실행 단위
- 프로세스/스레드의 실행, 일시 중단, 종료, 스케줄링, 컨텍스트 스위칭, 동기화
- 메모리 관리
- 프로세스나 스레드에게 메모리 할당, 메모리 변환, 다른 프로세스/스레드로부터의 메모리 보호
- 메모리를 하드 디스크의 영역까지 확장하는 가상 메모리 기술
- 파일 관리 혹은 파일 시스템 관리
- 파일 생성, 저장, 읽기, 복사, 삭제, 이동, 파일 보호
- 장치 관리
- 키보드, 마우스, 프린터 등 입출력 장치
- 하드 디스크 등 저장 장치 제어
- 사용자 인터페이스
- 라인 기반 명령 입출력 창이나 GUI 인터페이스 제공
- 네트워킹
- 네트워크 인지, 연결, 닫기, 데이터 송수신
- 보호 및 보안
- 바이러스나 웜, 멀웨어, 해킹 등의 외부 공격이나 무단 침입으로부터 보호
운영체제 구성
운영체제 = 커널 + 디바이스 드라이버 + 도구 프로그램
- 커널
- 운영체제의 핵심 기능들을 구현
- 컴퓨터 자원을 제어하고 관리하는 코드와 자료 구조들
- 좁은 의미의 운영체제
- 응용프로그램이 커널 기능을 이용하려면 시스템 호출 사용
- 디바이스 드라이버
- 장치를 직접 제어하고 입출력하는 소프트웨어
- 장치마다 전담 디바이스 드라이버 있음
- 키보드 드라이버, 마우스 드라이버, usb 드라이버 등
- 일반적으로 장치 제작자에 의해 작성되어 배포됨
- 도구 프로그램
- 사용자가 컴퓨터를 편리하게 사용할 수 있도록 제공
- Windows 탐색기, 작업관리자, 제어판 등
운영체제 커널 인터페이스: 시스템 호출과 인터럽트
시스템 호출
- 커널과 응용프로그램 사이의 인터페이스
- 응용프로그램에서 커널 기능을 사용할 수 있는 유일한 방법
- 시스템 호출 라이브러리를 통해 다양한 시스템 호출 함수 제공
- 시스템 호출 라이브러리는 운영체제 패키지에 포함됨
- 파일 읽기, 메모리 할당, 프로세스 정보 보기, 프로세스 생성 등
cf. 표준 라이브러리란?
- 응용프로그램을 쉽게 작성할 수 있도록 복잡한 기능을 미리 작성해 놓은 코드
인터럽트
- 커널과 하드웨어 장치 사이의 인터페이스
- 장치들의 입출력 완료, 타이머 완료 등을 CPU에게 알리는 하드웨어적 방법
- 인터럽트를 알리는 하드웨어 신호가 직접 CPU에 전달
- 인터럽트 발생하면
- CPU는 하는 일을 중단하고 인터럽트 서비스 루틴 실행
- 인터럽트 서비스 루틴은 대부분 디바이스 드라이버 내에 있음
- 인터럽트 서비스 루틴은 커널 영역에 적재
- 인터럽트 서비스 루틴의 실행을 마치면 하던 작업 계속
- 인터럽트 활용
- 운영체제가 장치에게 지시한 입출력 작업의 완료, 예고 없는 네트워크 데이터의 도착, 키보드나 마우스의 입력, 부족한 배터리 경고 등 장치와 관련된 모든 이벤트 처리
Monolithic kernel
- 성능 면에서 효율적일 수 있지만, 특정 디바이스 드라이버에서 발생한 오류가 시스템 전체의 불안정으로 이어질 위험 O
Microkernels
- 프로세스 사이의 통신, 가상 메모리 관리, 스케줄링 등 핵심 기능만 커널 영역에서 실행
- 디바이스 드라이버 및 나머지 기능들은 모듈화하여 사용자 영역에서 실행
시스템 안정성 유지, 각 기능 모듈화 → 전체 시스템에 미치는 영향 최소화, but 성능 면에서 복잡함
결함 격리
'공부 기록 > 운영체제' 카테고리의 다른 글
| 컴퓨터 시스템과 운영체제 (3) (0) | 2025.11.09 |
|---|---|
| 컴퓨터 시스템과 운영체제 (0) | 2025.11.09 |