본문 바로가기
운영체제

[운영체제] 1. 운영체제 개요 - (1) 운영체제 개념

by NoDapKeepGoing 2025. 4. 9.

📍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. 운영체제의 기능

 

 

☑️ 운영체제와 응용 소프트웨어 차이