본문 바로가기

6. 컴퓨터 공학 공부

[70] 운영체제 02차시 운영체제의 기능과 서비스

1. 운영체제의 기능

가. 자원 관리 기능

1) 메모리 관리

메인 메모리 관리

프로세서가 직접 주소로 지정할 수 있는 유일한 메모리

메모리의 어느 부분을 사용하고, 누가 사용하는지 점검

메모리에 저장할 프로세스 결정

메모리를 할당하고 회수하는 방법 결정

 

보조기억장치 관리

메인 메모리는 공간이 제한되어 데이터와 프로그램을 계속 저장할 수 없어 보조기억장치 이용

빈 여유 공간 관리

새로운 파일 작성 시 저장 장소 할당

메모리 접근 요청 스케줄링

파일 생성하고 삭제

2) 프로세스 관리

하나의 프로세스는 프로세서, 메모리, 파일, 입출력 장치와 같은 자원으로 구성

자원은 프로세스 생성할 때 제공하거나 실행 중에도 할당 가능

프로세스와 스레드 스케줄링

사용자 프로세스와 시스템 프로세스 생성, 제거

프로세스 중지, 재수행

프로세스 동기화 방법 제공

프로세스 통신 방법 제공

교착 상태(Deadlock)를 방지하는 방법 제공

3) 주변장치 관리(입출력 관리)

운영체제는 특수 프로그램인 장치 드라이브를 사용하여 입출력 장치와 상호작용

장치 드라이버는 특정 하드웨어 장치와 통신할 수 있는 인터페이스를 제공하므로 특정 하드웨어에 종속된 프로그램

임시 저장(buffer-caching) 시스템 기능 제공

일반 장치용 드라이버 인터페이스 제공

특정 장치 드라이버 제공

4) 파일 관리

입출력 파일의 위치, 저장, 검색 관리 의미

컴퓨터 시스템은 물리적으로 다양한 형태로 파일 저장 가능

운영체제는 데이터의 효율적 사용을 위해 단일화된 저장 형태 제공

운영체제는 파일의 용이한 사용을 위해 보통 디렉터리로 구성, 다수의 사용자가 여기에 접근하려고 할 때는 이 접근을 제어

파일 생성, 삭제

디렉터리 생성, 삭제

보조기억장치의 파일 맵핑

안전한 저장장치에 파일 저장

나. 시스템 보호

컴퓨터 자원에서 프로그램, 프로세스, 사용자의 접근 제어 방법 제공

운영체제는 파일 사용 권한 부여, 데이터 암호화 등 서비스를 제공, 데이터와 시스템 보안

컴퓨터 시스템에서는 여러 프로세스 동시 실행 가능하므로 상호 보호해야 함.

다. 네트워크(통신 기능)

프로세서는 다양한 방법으로 구성된 네트워크 이용, 완전 접속과 부분 접속 방법으로 연결

연결된 프로세서가 통신을 할 때는 경로 설정, 접속 정책, 충돌, 보안 등 고려(운영체제가 관리)

2. 운영제체 서비스

가. 부팅(Booting) 또는 부트스트래핑(Bootstrapping)

운영체제를 메인 메모리에 적재하는 과정

부트 로더는 부트스트랩 로더의 줄임말로 하드디스크와 같은 보조기억장치에 저장된 운영체제를 메인 메모리에 적재하는 ROM에 고정시킨 소규모 프로그램

1. ROM에 있는 바이오스 프로그램이 실행된다.

2. 부팅 프로그램을 주기억장치에 로드한다.

3. 운영체제를 주기억 장치에 로드한다.

4. 운영체제에 의해 프로그램이 로드된다.

5. 운영체제 명령에 의해 CPU가 프로그램을 실행한다.

https://ko.wikipedia.org/wiki/부팅

 

부팅 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 시동은 여기로 연결됩니다. 다른 뜻에 대해서는 시동 (동음이의) 문서를 참고하십시오. 기동은 여기로 연결됩니다. 다른 뜻에 대해서는 기동 (동음이의) 문서를

ko.wikipedia.org

나. 사용자 서비스 제공

1) 사용자 인터페이스

사용자와 컴퓨터 간의 상호작용 발생 공간(CLI, 메뉴, GUI 등 구현)

https://ko.wikipedia.org/wiki/명령줄_인터페이스

 

명령줄 인터페이스 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 배시 세션의 스크린샷 - 젠투 리눅스에서 명령줄 인터페이스(영어: command-line interface, CLI, 커맨드 라인 인터페이스) 또는 명령행 인터페이스, 명령어 인터페이스

ko.wikipedia.org

https://ko.wikipedia.org/wiki/그래픽_사용자_인터페이스

 

그래픽 사용자 인터페이스 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. GUI는 여기로 연결됩니다. 다른 뜻에 대해서는 GUI (동음이의) 문서를 참고하십시오. GUI는 컴퓨터 화면에 표시된다. 처리된 사용자 입력의 결과물이며 보통은 인

ko.wikipedia.org

2) 프로그램 실행

프로그램을 실행하려면 먼저 메모리에 적재, 프로세서 시간 할당

운영체제는 프로그램을 실행하려고 메모리 할당이나, 해제, 스케줄링 등 중요 작업 처리

3) 입출력 동작 수행

운영체제는 입출력 동작 직접 수행할 수 없는 사용자 프로그램의 입출력 동작 방법 제공

4) 파일 시스템 조작

사용자는 디스크에서 파일 열고, 저장, 삭제하는 등 다양하게 파일 조작

5) 통신(네트워크)

프로세스가 다른 프로세스와 정보를 교환하는 방법

동일한 컴퓨터에서 수행하는 프로세스 간의 정보 교환

네트워크로 연결된 컴퓨터 시스템에서 수행하는 프로세스 간의 정보 교환

6) 오류 탐지

운영체제는 가능한 모든 하드웨어와 소프트웨어 수준에서 오류 탐지, 시스템 모니터링하여 조정함으로써 하드웨어 문제 예방

입출력 장치에 관련된 오류와 메모리 오버 플로, 하드디스크의 불량 섹터 검출, 부적당한 메모리 접근과 데이터 손상 등

운영체제는 오류 유형을 감지한 후 유형별로 적절히 조치

다. 시스템 서비스

1) 자원 할당

다수의 사용자나 동시 작업 실행 시 자원을 각각 할당하도록 운영체제가 관리

프로세서 사이클, 메인 메모리, 파일 저장 장치 등은 특수한 할당 코드를 갖지만, 입출력 장치 등 더 일반적인 요청과 해제 코드 가질 수 있음.

2) 계정

운영체제는 각 사용자가 어떤 컴퓨터 자원을 얼마나 많이 사용하는지 정보 저장, 추적

이 정보는 사용자 서비스 개선을 위해 시스템 재구성하는 연구자에게 귀중한 도구가 됨.

3) 보호와 보안

보호는 시스템을 호출하려고 전달한 모든 매개변수의 타당성을 검사하고, 시스템 자원에 모든 사용자 접근을 제어하도록 보장하는 것

보안은 잘못된 접근 시도에서 외부 입출력 장치 방어, 외부에 사용자 인증을 요구하는 것

운영체제는 다중 사용자 컴퓨터 시스템에 저장된 정보 소유자의 사용을 제한

서로 관련이 없는 여러 작업을 동시에 수행할 때는 한 작업이 다른 작업이나 운영체제를 방해하지 못하게 해야 함.

라. 시스템 호출 서비스

실행 중인 프로그램과 운영체제 간의 인터페이스, API라고도 함.

사용자 프로그램은 시스템 호출을 하여 운영체제의 기능을 제공 받음.

핵심 커널 서비스와 통신, 새로운 프로세스의 생성과 실행, 하드웨어 관련 서비스 등이 있음.

시스템과 상호작용하는 동작은 대개 사용자 수준 프로세스에서는 사용할 수 없으나, 시스템 호출을 하여 운영체제에 서비스를 요청할 수 있음.

프로그램에서 명령이나 서브루틴의 호출 형태로 호출하거나 시스템에서 명령 해석기를 사용하여 대화 형태로 호출

프로세스 제어, 파일 조작, 장치 관리, 정보 유지 등의 일반적인 시스템 호출을 제공

3. 운영체제의 미래

가. 사람 같은 인공지능 OS, 미래 아닌 현재형

https://www.econovill.com/news/articleView.html?idxno=221252

 

사람같은 인공지능 OS, 미래 아닌 현재형 - 이코노믹리뷰

조: “문제가 생겼어. 차 시동이 걸리질 않아!”아멜리아: “이런. 계기판을 한 번 확인해볼래? 배터리등은 켜졌어?”조: “아니.”아멜리아: “차에 있는 전등이 하나라도 켜지니?”조: “아니.

www.econovill.com

나. 구글 OS 푸크시아

https://ko.wikipedia.org/wiki/구글_퓨시아

 

구글 퓨시아 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 구글 퓨시아(영어: Google Fuchsia)는 구글에서 개발하는, 지르콘(Zircon)이라는 이름의 마이크로커널을 기반으로 하는 컴퓨터 운영 체제이다. 퓨시아는 2016년 8월, 어

ko.wikipedia.org

다. 스마트카 운영체제

1) 애플 카플레이

https://ko.wikipedia.org/wiki/카플레이

 

카플레이 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 카플레이(CarPlay)는 자동차 라디오나 헤드 유닛이 디스플레이, 아이폰용 컨트롤러 역할을 할 수 있도록 하는 애플의 표준이다. 최소 iOS 7.1의 모든 아이폰 5 이후

ko.wikipedia.org

2) 구글 안드로이드 오토

https://ko.wikipedia.org/wiki/안드로이드_오토

 

안드로이드 오토 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 안드로이드 오토(영어: Android Auto)는 구글의 안드로이드를 차량 주행 중 텔레매틱스에 맞게 변형하여 안드로이드 스마트폰과 자동차의 계기판과 헤드 유닛에서

ko.wikipedia.org

3) 마이크로소프트 윈도우인터카

4) 현대 ccOS