운영체제란?
- 소프트웨어
- 컴퓨터 자원을 관리하고 사용자 프로그램이 효율적으로 실행되도록 돕는 중간 관리자 역할
운영 체제의 3가지 핵심 개념
- 가상화
- 실제 하드웨어 자원을 여러 개의 자원으로 나누는 기술
- 주요 예시
- CPU 가상화 : 하나의 실제 CPU를 여러 개의 가상 CPU처럼 사용
- 메모리 가상화 : 각 프로그램이 독립된 메모리 공간을 사용하는 것처럼 보이게 함
- 병행성
- 여러 작업(프로세스/쓰레드)이 동시에 실행되는 것처럼 보이게 하는 기술
- 병행성 문제 예시
- 여러 쓰레드가 하나의 변수를 동시에 수정 → 예상 결과와 다른 출력 발생
- 영속성
- 메모리를 휘발성이므로, 데이터를 영구 저장할 수 있는 장치 필요
- 시스템 콜 : open(), write(), close() 등은 파일 시스템을 통해 데이터를 디스크에 기록
운영체제의 주요 역할
- 가상 기계
- 사용자 프로그램이 실제 하드웨어가 아닌, 추상화된 자원에서 실행되도록 제공
- API 제공자
- 시스템 자원에 접근하기 위한 인터페이스 제공(system call)
- API란?
- API는 **소프트웨어 구성 요소 간의 상호작용을 위한 명확한 방법(규약, 함수, 명령어 집합)**을 제공하는 인터페이스입니다.
- 자원 관리자
- CPU, 메모리, 저장소 등 자원을 할당하고 관리
어떻게 운영체제가 이러한 것들을 관리하는가
OS 설계 목표
- 추상화 : 자원을 쉽게 사용할 수 있도록 인터페이스 제공
- 고성능 : 효율적 자원 사용으로 빠른 처리
- 보호 : 앱 간 간섭 방지 및 보안
- 신뢰성 : 시스템 장애 시에도 안정적 작동
- 기타 : 에너지 효율, 보안성, 이동성 등 고려