Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Amazon
- 에어플로우
- 개념정리
- SQL
- Service
- 데이터엔지니어
- AWS
- 알고리즘
- airflow
- 데이터베이스
- 운영체제
- 파이썬
- 개발
- 데브코스
- 취준
- 관계형데이터베이스
- 데이터웨어하우스
- 웹크롤링
- 클라우드
- 프로그래머스
- 부트캠프
- 자료구조
- 웹스크래핑
- DataWarehouse
- 기술면접
- 웹자동화
- 데이터엔지니어링
- WEB
- CS
- Django
Archives
- Today
- Total
사진과 음악을 좋아하는 개발자 지망생의 블로그
운영체제와 커널 본문
반응형
1. 운영체제(Operating System)
운영체제란?
- 정의: 하드웨어와 사용자 및 각종 어플리케이션들을 연결해주는 소프트웨어 계층
- 좁은 의미: 커널 – 운영체제의 핵심 부분으로, 전원 투입 시 메모리에 항상 상주
- 넓은 의미: 커널을 포함한 다양한 시스템 유틸리티(메모리에 상주하지 않는 프로그램 포함)
운영체제의 역활
- 운영체제 ↔ 하드웨어
- 자원 관리
- 성능을 최대화함과 동시에 사용자(또는 어플리케이션) 간 형평성을 고려하여 컴퓨터 시스템의 자원 관리
- 자원
- 하드웨어 자원: 프로세서, 기억장치, 입출력 장치
- 소프트웨어 자원: 프로세스, 파일, 메시징
- 성능만 추구하면 특별 소프트웨어 및 사용자가 차별받는 상황이 발생할 수 있음
- ⇒ 형평성을 고려하여 컴퓨터 시스템의 자원 관리
- 사용자 및 운영체제 자신의 보호
- 자원 관리
- 편리한 사용자 환경 제공 (운영체제 ↔ 소프트웨어/사용자)
- 다중 사용자/프로그램들이 독립적으로 수행되는 것처럼 보이게 함
- 하드웨어의 복잡한 처리를 운영체제가 대신 처리
운영체제의 분류
- 동시 작업 가능 여부
- 단일 작업: 한 번에 하나의 작업만 처리 (예: MS-DOS)
- 다중 작업: 여러 작업을 동시에 처리 (예: Windows, UNIX, iOS)
- 사용자 수 (동시 접속 가능자 수)
- 단일 사용자: 한 명의 사용자만 접근 가능 (예: MS-DOS, Windows)
- 다중 사용자: 여러 사용자가 동시 접속 가능 (예: UNIX, NT 서버)
- 처리 방식
- 일괄 처리 (Batch Processing): 작업을 모아 한꺼번에 처리, 응답 대기 시간 필요 (예: 초기 펀치 카드)
- 시분할 (Time Sharing): 일정 시간 단위로 자원 분할, 짧은 응답 시간 제공 (예: UNIX)
- 입력 즉시 출력이 나오는 인터랙티브 방식
- 사용자에게 빠른 응답 제공, 자원 효율 최대화
- 실시간 처리 (Real-Time Processing): 정해진 시간 내 작업 완료 보장
- Hard Real-Time: 미사일, 원자로 등 엄격한 시간 준수 필수
- Soft Real-Time: 데드라인은 있으나 일정 지연이 허용 (예: 일부 산업 제어 시스템)
구조
- 커널
- 하드웨어와 직접 소통하면서, 컴퓨터 시스템의 핵심 기능들(CPU, 메모리 관리, 입출력 제어 등)을 수행
- 저수준 API를 통해 하드웨어와 밀접하게 상호작용함
- 운영체제의 성능은 커널의 성능에 의해 좌우됨
- 인터페이스(Shell, GUI 등)
- 사용자가 커널에 명령을 전달하고 그 결과를 받을 수 있도록 해줌
- 시스템 호출(System Call) 과 디바이스 드라이버(Device Driver)
- 시스템 호출(System Call)
- 커널을 보호하기 위해 만든 인터페이스
- 사용자나 프로그램이 커널에 직접 접근하는 것을 막고, 호출을 통해 커널의 기능을 사용할 수 있도록 함
- 프로그램은 커널에게 요청만 하고, 커널이 작업을 대신 수행하는 방식
- 디바이스 드라이버(Device Driver)
- 커널과 하드웨어 사이의 인터페이스 역활을 하는 소프트웨어
- 하드웨어 제조업체가 제공하는 소프트웨어로, 커널이 이 드라이버를 사용해 하드웨어를 제어함
- 시스템 호출(System Call)
2. 커널(Kernel)
정의
- 운영체제의 핵심이자 하드웨어와 소프트웨어를 연결하는 역할을 하는 소프트웨어
- 항상 메모리에 상주하여 각 장치(CPU, 메모리, 저장장치 등)를 관리하고 제어함
기능
- 프로세스 관리
- CPU 자원을 여러 프로그램(프로세스)에게 효율적으로 배분하고, 작업할 환경을 제공
- 메모리 관리
- 프로그램이 사용할 메모리를 관리하고, 실제 메모리보다 더 큰 가상 메모리를 제공
- 파일 시스템 관리
- 데이터를 저장하고, 불러올 수 있는 방법을 제공
- 입출력 관리
- 마우스, 키보드, 프린터 등의 장치와 데이터를 주고받는 과정을 관리함
- 프로세스 간 통신 관리
- 여러 프로그램이 서로 데이터를 주고 받을 수 있는 환경을 제공
종류
- 모노리틱 커널(단일형 커널)
- 정의
- 초창기의 구조로 커널에서 제공할 수 있는 다양한 기능을 한 덩어리로 묶은 형태(단일한 커널 공간에 구현)의 커널
- 장점
- 모듈들이 분리되어 있지 않기 때문에 모듈 간의 통신 비용이 줄어 성능이 좋다
- 단점
- 오류 발생 시 여러 기능들이 상호 의존하기 때문에 작은 결함에도 시스템 전체가 위험해짐
- 유지보수가 어려움
- 운영체제가 커지고 복잡해져 구현하기가 매우 어려움
- 사용하는 운영체제
- 유닉스, 리눅스, BSD, 윈도 NT 등
- 정의
- 마이크로 커널
- 정의
- 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공하고 나머지는 사용자 영역에 구현하는 구조
- 장점
- 모듈 크기가 굉장히 작아져서 안정성이 높음
- 각 모듈이 독립적으로 작동하기 때문에 결함이 발생해도 전체 운영체제가 멈추지 않음
- 일부 서비스만으로 작은 운영체제를 구성하여 임베디드 시스템에 사용할 수 있음
- 단점
- 잦은 통신이 필요하기 때문에 성능 저하 우려가 있다
- 사용하는 운영체제
- AmigaOS, Haiku, 심비안 OS 등
- 정의
- 하이브리드 커널
- 모노리킥 커널과 마이크로 커널의 혼합 형태
반응형
'CS > 운영체제' 카테고리의 다른 글
Process(Process, Multi-Process, Context, Process State, PCB, Context Switching) (0) | 2024.12.18 |
---|---|
시스템 구조 & 프로그램 실행(컴퓨터 시스템 구조, 입출력, 동기식 및 비동기식 입출력, 프로그램 실행) (0) | 2024.12.16 |