1. 운영체제의 개요
1-1 운영체제(OS, Operating System)의 정의
- 응용 프로그램 or 사용자에게 컴퓨터 자원을 사용할 수 있는 인터페이스를 제공하고 그 결과를 돌려주는 시스템 소프트웨어
- 일반 컴퓨터, 노트북, 스마트폰의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어(ex - 윈도우, MacOS, 유닉스, 리눅스, ios, Android 등)
- 응용 프로그램 or 사용자에게 모든 컴퓨터 자원을 숨기고 정해진 방법으로만 컴퓨터 자원을 사용할 수 있도록 제한(자원 관리, 자원 보호)
1-2 운영체제의 역할 및 목표
역할 | 목표 |
---|
자원 관리 | 효율성 |
자원 보호 | 안정성 |
하드웨어 인터페이스 제공 | 확장성 |
사용자 인터페이스(UI) 제공 | 편리성 |
운영체제의 역할
- 자원관리 : 컴퓨터 시스템의 자원을 응용프로그램에 나눠주어 사용자가 원활하게 작업할 수 있도록 함
- 자원 보호 : 비정상적인 작업으로부터 컴퓨터 자원을 보호
- 하드웨어 인터페이스 제공 : 사용자가 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 해줌
- 사용자 인터페이스(UI) 제공 : 사용자가 운영체제를 편리하게 사용하도록 지원
운영체제의 목표
- 효율성 : 자원을 효율적으로 관리 (ex - 같은 자원으로 더 많이 작업량 처리)
- 안정성 : 작업을 안정적으로 처리. 하드웨어적인 보안 문제 처리. 시스템에 문제 발생 시, 복구하는 결함 포용 기능 수행
- 확장성 : 다양한 시스템 자원을 컴퓨터에 추가/제거하기에 편리한 것
- 편리성 : 사용자가 편리하게 작업할 수 있는 환경을 제공하는 것
1-3 일괄 작업 시스템 (1950년대)
- 천공카드리더기(입력)와 라인프린터(출력) 사용
: 모든 작업을 한꺼번에 처리하고 프로그램 실행 중간에 데이터 수정 및 입력을 할 수 없음
1-4 시분할 시스템 (1960년대)
- CPU 사용시간을 잘게 쪼개어 작업들에 나누어줌으로써 프로그램이 동시에 돌아가게 하는 것처럼 보임
- 나뉜 시간의 한 조각 ⇒ 타임 슬라이스 / 타임 퀀덤
1-5 클라우드 컴퓨팅 (2000년대 초~)
- 언제 어디서나 응용 프로그램과 데이터를 자유롭게 이용 가능한 컴퓨팅 환경
- 그리드 컴퓨팅 + SaaS 형태
- 하드웨어에 포함된 시스템이 구름에 가린 것처럼 사용자에게 보이지 않는 컴퓨팅 환경이라는 뜻

1-6 커널 (Kernel)
- 운영체제의 핵심적인 기능을 모아놓은 것
- 핵심기능 (프로세스 관리, 메모리 관리, 입출력 장치 관리, 저장 장치 관리, 프로세스 간 통신 관리)
- 우리가 하는 모든 작업은 여기에서 이루어짐 ,,
- 종류에는 단일형 구조 커널, 계층형 구조 커널, 마이크로 구조 커널이 있음
1-7 인터페이스 (Interface)
- 커널에 사용자의 명령을 전달하고 실행결과를 알려주는 역할
1-8 시스템 호출
- 커널이 자기 보호를 위해 만든 인터페이스
- 커널이 제공하는 시스템 자원의 사용과 연관된 함수
- 응용 프로그램이 하드웨어 자원이나 OS가 제공하는 서비스에 접근하려고 하면 시스템 호출을 사용해야 함
- 사용자가 직접 자원에 접근하는 것을 차단 (자원 보호 - 안정성)
HOW?
응용 프로그램이 커널이 제공하는 write() 함수를 통해 하드디스크에서 데이터를 저장해달라고 요청하는 방식