01 OS - 운영체제
01 OS - 운영체제
1. 운영체제
- 사용자와 하드웨어 사이에서 중간 매개체 역할을 하며, 응용 프로그램의 실행을 제어하고, 자원을 효율적으로 할당 및 관리함. 또한 입출력 제어와 데이터 관리를 포함한 다양한 서비스를 제공하는 소프트웨어
- 사용자에게 편리한 환경을 제공하고, 시스템 자원을 효율적으로 관리하여 성능을 극대화하며, 제어 서비스의 품질 향상을 위해 지속적으로 발전함.
2. 운영체제의 역할
1. 자원관리
구분 | 주요 역할 및 내용 |
---|---|
메모리 관리 | - 시스템 메모리 자원을 효율적으로 할당 및 회수 - 프로세스 실행에 필요한 메모리 공간 관리 - 저장 장치의 공간 관리 포함 |
프로세스 관리 | - 프로세스와 스레드 스케줄링 관리 - 사용자 및 시스템 프로세스 생성과 종료 - 프로세스 중지 및 재개 제어 - 프로세스 간 통신(IPC) 제공 - 교착 상태(데드락) 방지 기법 제공 |
주변 장치 관리 | - 임시 저장 장치 기능 제공 - 일반 장치용 드라이버 인터페이스 제공 - 특정 장치 드라이버 관리 및 제공 |
파일(데이터) 관리 | - 파일 및 디렉토리 생성과 삭제 - 보조 기억 장치의 파일 매핑 - 안전한 저장 공간에 파일 저장 및 관리 |
2. 시스템관리
구분 | 주요 역할 및 내용 |
---|---|
시스템 보호 | 사용자 권한 부여 및 접근 제어, 보안 관리 |
네트워킹 | 프로세스 간 통신과 네트워크 데이터 전송 지원 |
명령 해석기 | 사용자 명령어를 해석하고 실행하는 인터페이스 제공 |
3. 운영체제의 유형
운영체제 유형 | 설명 | 장점 | 단점 |
---|---|---|---|
일괄 처리 시스템 | 사용자 작업을 모아 한꺼번에 처리하는 방식. | 작업 준비 시간 감소, CPU 자원 효율적 사용 | 실시간 처리 불가, 작업 대기 시간 증가 |
다중 프로그래밍 시스템 | 여러 작업이 메모리에 동시에 올라와 CPU가 번갈아가며 실행 | CPU 활용 극대화, 시스템 처리 효율 증가 | 메모리 충돌 가능성, 오류 전파 위험 |
시분할 시스템 | 다중 프로그래밍을 논리적으로 확장, 프로세서가 다중 작업을 교대로 수행함. | 사용자 응답 속도 향상, 다중 사용자 지원 | 시스템 오버헤드 증가, 실시간 처리에는 부적합 |
다중 처리 시스템 | 여러 CPU가 병렬로 하나의 작업 혹은 여러 작업을 처리 | 처리 속도 향상, 신뢰성 증가 (CPU 장애 시 다른 CPU로 대체 가능) | 자원 공유 및 동기화 복잡 |
실시간 처리 시스템 | 시간 제약 내에 반드시 작업이 할수 있도록 실시간으로 즉시 처리하는 방식 | 정확한 시간 내 응답 가능, 제어 시스템 및 임베디드에 적합 | 개발 복잡, 자원 낭비 위험 |
분산 시스템 | 여러 컴퓨터가 네트워크로 연결되어 하나의 시스템처럼 작동 | 자원 공유 용이, 확장성 뛰어남 | 네트워크 의존성, 장애 처리 복잡 |
4. 운영체제 서비스
서비스 구분 | 설명 |
---|---|
부팅 서비스 | 컴퓨터 전원을 켰을 때 운영체제를 메모리에 적재하고 초기 환경을 구성함 부팅/부트스트래핑 : 운영체제를 메인 메모리에 적재하는 과정 |
사용자 서비스 | - 사용자에게 인터페이스를 제공하고, 편리한 작업 환경 제공 - CLI, GUI, 메뉴인터페이스 |
시스템 서비스 | - 시스템 자원을 관리하고 보호하는 내부 기능 제공 - 프로세스/메모리/입출력/파일/네트워크 관리 등 |
시스템 호출 | - 응용 프로그램이 운영체제의 기능(서비스)을 사용할 수 있도록 제공하는 인터페이스 - 시스템 콜(System Call) |
5. 운영체제의 구조
※ 커널은 운영체제의 가장 핵심적인 부분으로, 하드웨어와 응용 프로그램 사이를 연결해주는 핵심 소프트웨어 계층
1. 단일 구조 운영체제 (Monolithic OS)
구분 | 설명 |
---|---|
개념 | 모든 운영체제 기능(파일 시스템, 메모리, 입출력, 프로세스 등)이 하나의 큰 커널 안에서 함께 동작하는 구조 |
특징 | - 커널이 모든 기능을 직접 처리구조가 단순하지만 커널 크기가 큼 - 모듈 간 결합도가 높음 - 성능은 좋지만 유지보수 어려움 |
예시 | UNIX, MS-DOS |
2. 계층 구조 운영체제 (Layered OS)
구분 | 설명 |
---|---|
개념 | 운영체제 기능을 계층(Layer)으로 나누어 각 계층이 특정 역할만 담당하도록 분리한 구조 |
특징 | - 각 계층은 하위 계층의 기능에만 접근 가능 - 모듈화가 잘 되어 있어 유지보수가 용이 - 설계와 테스트가 체계적 - 성능은 단일 구조보다는 낮을 수 있음 |
예시 | THE 시스템, MULTICS 등 |
3. 마이크로 커널 구조 운영체제 (Microkernel OS)
구분 | 설명 |
---|---|
개념 | 운영체제의 핵심 기능(스케줄링, IPC 등)만 커널에 두고, 나머지 기능(드라이버, 파일 시스템 등)은 사용자 공간에서 실행 |
특징 | - 커널이 매우 작고, 나머지는 독립된 서비스로 분리 - 안정성 높고, 모듈 교체가 쉬움 - 성능은 떨어질 수 있음 (IPC 오버헤드) - 보안성/확장성이 우수 |
예시 | QNX, MINIX, L4, 현대 Windows NT 기반 구조 (부분적으로 적용됨) |
This post is licensed under CC BY 4.0 by the author.