📍1. 운영체제 정의
✔️ 컴퓨터 응용소프트웨어와 하드웨어를 안전하게 인터페이스 하기 위해 필요한 서비스의 모음
= 루틴
= 응용소프트웨어의 개발 지원과 수행을 제어하는 소프트웨어
= 컴퓨터 자원의 접근을 제어하고 효율적으로 관리하는 소프트웨어
1️⃣ 컴퓨터의 모든 자원(resource)을 효율적으로 관리함
✔️ 하드웨어 자원
CPU, 캐시, 메모리, 키보드, 마우스, 디스플레이, 하드디스크, 프린터
✔️ 소프트웨어 자원
응용프로그램
✔️ 데이터 자원
신호, 세마포어, 뮤텍스, 파일, 데이터베이스등
2️⃣ 자원에 대한 독점(exclusive) 권한을 소유함
자원할당, 자원공유, 자원액세스등
3️⃣ 운영체제는 컴퓨터 시스템 관리자(supervisor) 임
수행 중인 프로그램 관리, 메모리 관리, 파일과 디스크 장치 관리, 입출력 장치 관리, 사용자 계정 관리 등
☑️ 일반 소프트웨어와의 주요 차이는 그 프로그램의 의도
CPU(processor)에게 다른 시스템 자원의 사용을 지시하며 다른 프로그램의 수행될 시점을 결정
이를 위해 운영체제는 CPU를 소유 > 양도 > 소유 … 의 패턴이 필요함
📍2. 운영체제의 목적
1️⃣ 편리성
컴퓨터를 보다 편리하게 사용할 수 있게 하기 위함
2️⃣ 효율성
컴퓨터 시스템 자원을 효율적으로 사용할 수 있게 하기 위함
3️⃣ 제어 서비스 향상
새로운 기능을 도입할 수 있도록 하기 위함
📍3. 운영체제의 역할
3-1. 응용프로그램과 하드웨어 간의 중개자로서의 운영체제
✔️ 응용프로그램 사용자는 하드웨어에는 관심이 없고 컴퓨터를 응용프로그램의 집합으로 바라봄
- 응용프로그램은 하드웨어 접근이 필요할 때 라이브러리와 운영체제를 활용함
✔️ 운영체제는 응용프로그램이 하드웨어 자원과 서비스에 쉽게 접근하고 편리하게 사용할 수 있게 해주는 인터페이스로서의 역할을 함
➡️ 추상화(abstraction)
✔️ 운영체제 서비스
- 프로그램 개발/ 수행(API, ABI, ISA)
- 입출력 장치 접근
- 파일 접근 제어
- 시스템 접근
- 에러 발견 및 응답
- 어카운팅(accounting)
3-2. API(Application Programming Interface)
✔️ 정의
응용프로그램 모듈 간의 상호작용을 정의하는 규칙(함수 호출, 데이터 구조, 변수 및 상수 정의)과 명령의 집합
✔️ 목적
응용프로그램 모듈 간의 통신을 용이하게 하고, 재사용 가능성을 높이며, 코드의 유지보수를 쉽게 하기 위함
✔️ 작동 방식
소스 코드 수준에서 작동하며, 개발자는 이를 통해 기능을 호출하거나 데이터를 주고받음
✔️ 종류
웹 API, 표준라이브러리 API, 시스템 호출 API
✔️ 예시
RESTful API, Windows API, Java API 등
3-3. ABI(Application Binary Interface)
✔️ 정의
응용프로그램과 OS 간의 바이너리 수준에서 인터페이스를 정의하는 표준
✔️ 목적
컴파일된 바이너리 코드가 서로 다른 시스템 환경(OS, CPU 구조)에서도 일관되게 작동할 수 있도록 함. 프로그램 실행 중에 정확한 함수 호출, 데이터 형식, 메모리 레이아웃 등을 보장함
✔️ 작동 방식
바이너리 수준에서 작동하며, 컴파일된 프로그램들이 시스템의 런타임환경과 상호작용할 수 있도록 함
✔️ 예시
ELF, PE 포맷, C++ ABI
3-4. ISA(Instruction Set Architecture)
✔️ 정의
응용프로그램과 CPU 간의 인터페이스로서, 기계 명령어 집합을 규정함
✔️ 목적
실행 중인 응용프로그램이 직접 하드웨어를 접근하지 못하게 하기 위함
✔️ 작동 방식
기계 명령어 집합을 User-ISA와 System-ISA로 구분하여, 응용프로그램은 User-ISA로 번역, OS는 System-ISA 로 번역하여 하드웨어를 접근하도록 함
✔️ 역할
이식성(portability)을 지원하고 성능을 최적화할 수 있도록 CPU 설계
✔️ 종류
User-ISA, System-ISA
✔️ 예시
x86, ARM, MIPS, RISC-V
3-5. 자원 관리자로서의 운영체제
✔️ 하드웨어는 데이터의 이동/저장/처리와, 이들 기능을 제어하는데 필요한 자원들의 집합
✔️ OS는 CPU에 의해 수행되는 일련의 프로그램이며, 자주 사용되는 부분들은 주 기억장치에 상주함
✔️ OS는 응용프로그램들을 위해 주기억장치를 할당함
✔️ OS는 수행 중인 응용프로그램의 입출력장치, 파일에 대한 접근을 제어함
✔️ OS는 특정 응용프로그램의 수행을 위해 CPU 시간을 할당함
3-6. 운영체제 발전의 용이성
✔️ OS가 계속적으로 발전하는 이유
- 하드웨어 업그레이드와 새로운 형태의 하드웨어 출현
- 새로운 서비스 요구
- 버그 수정
✔️ OS는 이러한 요구에 쉽게 적응할 수 있도록 설계되어야 함
- 운영체제 구성이 모듈화되어야 하고
- 모듈 간에 명확하게 인터페이스가 정의되고
- 문서화가 잘 되어야 함
📍4. 운영체제의 기능
☑️ 운영체제와 응용 소프트웨어 차이
'운영체제' 카테고리의 다른 글
[운영체제] 2. 컴퓨터 시스템과 운영체제 - (4) 커널과 인터럽트 (0) | 2025.04.09 |
---|---|
[운영체제] 2. 컴퓨터 시스템과 운영체제 - (3) 커널과 시스템 호출 (0) | 2025.04.09 |
[운영체제] 2. 컴퓨터 시스템과 운영체제 - (2) 컴퓨터 시스템의 계층구조와 운영체제 인터페이스 (0) | 2025.04.09 |
[운영체제] 2. 컴퓨터 시스템과 운영체제 - (1) 컴퓨터 시스템과 하드웨어 (0) | 2025.04.09 |
[운영체제] 1. 운영체제 개요 - (2) 운영체제 유형, (3) 운영체제 구조 (1) | 2025.04.09 |