mun dev

[CS 정리]1. 운영체제 개요 본문

CS/운영체제

[CS 정리]1. 운영체제 개요

mndev 2022. 8. 26. 15:30

■ 운영체제 ( OS, Operating System)

💡 정의

- 응용프로그램이나 사용자에게 컴퓨터 자원을 사용할 수 있는 인터페이스를 제공하고 그 결과를 돌려주는

 시스템 소프트웨어 

- 일반 컴퓨터, 노트북, 스마트폰의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어 

- 예) PC 운영체제(윈도우, Mac, OS, 유닉스, 리눅스 등)

       모바일 운영체제(ios, 안드로이드 등)

 

💡 목표  

운영체제의 역할 운영체제의 목표
자원관리 효율성
자원보호 안전성
하드웨어 인터페이스 제공 확장성
사용자 인터페이스 제공 편리성 

 

💡 시분할 시스템

- CPU 사용 시간을 잘게 쪼개어 작업들에 나누어줌으로써 모든 작업이 동시에 처리되는 것처럼 보임

- 잘게 나뉜 시간 한 조각을 타임 슬라이스 또는 타임 퀀텀이라고 함

- 오늘날의 컴퓨터에는 대부분 시분할 시스템을 사용 

 

💡 커널과 인터페이스 

커널

- 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것

 

인터페이스

- 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할

- 그래픽을 사용한 인터페이스를 GUI(Graphical User Interface)라 부름 

 

 

💡 시스템 호출과 디바이스 드라이버 

시스템 호출

- 커널이 자신을 보호하기 위해 만든 인터페이스

- 커널은 사용자나 응용프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단 

 

더보기

  1) 직접접근 

  -  두 응용프로그램이 자기 마음에 드는 위치에 데이터를 저장하려고 함

  -  다른 사람의 데이터를 지울 수도 있고 내 데이터가 다른사람에 의해 지워질 수도 있음

 

 2) 시스템 호출을 통한 접근

   - 응용 프로그램이 직접 하드디스크에 데이터를 저장하지 않고 커널이 제공하는 write() 함수를 사용하여 데이터를

     저장해달라고 요청 

  - 커널이 데이터를 가져오거나 저장하는 것을 전적으로 책임지기 때문에 컴퓨터 자원 관리가 수월 

 

드라이버

- 커널과 하드웨어의 인터페이스 담당하며 디바이스 드라이버라고도 불림

- 마우스와 같이 간단한 제품은 드라이버를 커널이 가지고 있으나, 그래픽 카드와 같이 복잡한 하드웨어의 경우 제작자가 드라이버를 제공함

 

 

💡 가상머신

- 운영체제와 응용프로그램 사이에서 작동하는 프로그램

- 가상머신을 설치하면 응용 프로그램이 모두 동일한 환경에서 작동하는 것 처럼 보임

- 자바는 유닉스와 윈도우에서 작동하는 다양한 가상머신을 만들어 배포하는데 이를 자바 가상머신(Java Virtual Machine)이라고 함