728x90
1. 운영체제의 역할과 구조
1) 운영체제의 역할
- 운영체제란 하드웨어 자원과 사용자 프로그램 사이의 중재 시스템
- 응용 프로그램이 CPU, 메모리, 디바이스를 직접 제어하지 못하도록 제한하고, 운영체제가 정해진 규칙에 따라 자원을 분배·관리하는 구조
- 프로세스 관리
다중 프로그램 실행 환경 제공, 프로세스 생성·종료·상태 관리, CPU 스케줄링- 여러 프로그램이 동시에 실행되는 것처럼 보이도록 관리
- 각 프로세스의 실행 상태를 추적하며 CPU 사용 순서 결정
- 하나의 프로세스가 CPU를 독점하지 못하도록 제어
- 메모리 관리
프로세스별 독립 주소 공간 제공, 가상 메모리 기반 효율적 메모리 사용, 메모리 보호- 각 프로세스가 자신만의 메모리를 사용하는 것처럼 보이게 구성
- 실제 물리 메모리는 운영체제가 매핑 관리
- 잘못된 메모리 접근으로 인한 시스템 오류 방지
- 파일 시스템 관리
저장장치의 파일·디렉터리 구조 추상화- 디스크의 복잡한 물리 구조를 파일 단위로 단순화
- 데이터 저장·조회·삭제를 일관된 방식으로 제공
- 입출력 장치 관리
하드웨어 장치에 대한 공통 제어 인터페이스 제공- 키보드, 디스크, 네트워크 장치를 동일한 방식으로 제어
- 하드웨어 차이를 운영체제가 흡수
- 보안 및 보호
사용자 모드와 커널 모드 분리, 비정상 접근 차단- 시스템 핵심 영역 보호
- 오류 또는 악성 코드로부터 전체 시스템 안정성 유지
2) 운영체제의 구조
- 운영체제 구조: 커널 중심 구조
- 운영체제 기능을 권한 수준에 따라 분리한 구조
- 커널
운영체제 핵심 영역, CPU·메모리·디바이스 직접 제어- 시스템 자원 관리 기능 집중
- 높은 권한을 가지는 실행 영역
- 유저 영역
사용자 프로그램 실행 영역, 하드웨어 직접 접근 불가- 일반 애플리케이션 실행 공간
- 커널 기능 직접 호출 불가
(1) 시스템 콜
사용자 프로그램이 운영체제의 서비스를 받기위해 커널 기능을 요청(커널 함수 호출)하는 공식 인터페이스
- 사용자 모드에서 호출
- 커널 모드 전환 발생
- 커널 내부 자원 접근 경로
주요 목적: 보안성과 안정성 확보
2. 컴퓨터의 요소
2-1. CPU
명령어 해석 및 실행 담당 중앙 처리 장치
운영체제와 가장 밀접하게 동작하는 하드웨어 구성 요소
(1) 제어장치
명령어 실행 흐름 제어 담당
- 명령어 인출
- 명령어 해석
- 제어 신호 생성 및 전달
(2) 레지스터
CPU 내부 초고속 저장 공간
- 연산 데이터 임시 저장
- 주소 및 상태 정보 저장
- CPU가 자체적으로 데이터를 저장할 방법이 없기 때문에 레지스터를 거쳐서 데이터를 전달함
(3) 산술논리연산장치
산술·논리 연산 수행 장치
CPU 연산 처리 흐름:
- 명령어 인출
- 명령어 해석
- 데이터 로드
- 연산 수행
- 결과 저장
(4) 인터럽트
CPU 실행 흐름을 중단하고 이벤트 처리를 유도하는 메커니즘
하드웨어 인터럽트
- 외부 장치 발생 신호
- 예: 키보드 입력, 디스크 I/O 완료, 네트워크 수신
- 지속적 확인(폴링) 방식의 비효율 해소가 목적
소프트웨어 인터럽트
- 프로그램의 오류 등으로 프로세스가 시스템 콜을 호출할 때 발생하는 인터럽트
- 예: 시스템 콜
- 운영체제 서비스 요청이 목적
2-2. DMA 컨트롤러
CPU 개입 없는 메모리–디바이스 간 데이터 전송 장치
- 대용량 I/O 처리 시 CPU 부하 감소
- 시스템 전체 성능 향상
동작 개요:
- CPU 전송 요청
- DMA 직접 메모리 접근
- 전송 완료 후 인터럽트 발생
2-3. 메모리
프로그램 및 데이터 저장 공간
- 실행 중인 프로그램의 코드와 데이터 저장
- CPU가 직접 접근 가능한 작업 공간
운영체제 관점 핵심 요소:
- 가상 메모리
- 주소 공간 분리
- 메모리 보호
2-4. 타이머
주기적 인터럽트 발생 장치
- 일정 시간 간격으로 CPU에 인터럽트 전달
- 실행 중인 프로세스 제어 수단
- 선점형 스케줄링 기반
- CPU 독점 방지 수단
2-5. 디바이스 컨트롤러
하드웨어 장치 제어 전용 장치
- 디바이스별 제어 로직 포함
- 운영체제는 직접 장치 제어 불필요
- 디바이스 드라이버를 통한 운영체제 제어
- 하드웨어 세부 사항 추상화 계층
728x90
'What I Learned > etc.' 카테고리의 다른 글
| [CS] CPU 스케줄링 알고리즘 (0) | 2025.12.24 |
|---|---|
| [CS] 메모리 관리 (0) | 2025.12.23 |
| [CS] IP주소 (0) | 2025.12.18 |
| PDF 파일에 있는 메타데이터 없애기 (0) | 2025.08.20 |
| [git] 내 레포에 다른 레포 코드 클론하기 (0) | 2025.07.15 |