본문 바로가기
컴퓨터공학/운영체제

2. 운영체제의 기능과 서비스

by meow0110 2024. 5. 22.

운영체제의 기능

1. 자원 관리 기능

2. 시스템 보호

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

 

 

1. 자원 관리 기능

*크게 4가지로 나뉨. 아래에서 세분화해서 보자

 

 

<메모리 관리>  

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

*CPU가 명령어를 수행하기 위해서는 명령어가 메인 메모리에 있어야 한다.

*프로그램이 절대주소로 매핑이 되어야 한다. 메인 메모리 주소로!

*RAM이라고 생각하면 된다.

■ 메모리 관리의 기능

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

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

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

 

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

■ 보조기억장치 관리의 기능

 빈 여유 공간 관리

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

 메모리 접근 요청 스케줄링

*CPU는 보조기억이랑은 통신하지 않는다. 한마디로 CPU랑 HDD는 직접적으로 데이터 주고 받지 않음. 대신 CPU와 HDD 사이에 메인메모리RAM이 있음. CPU - RAM - HDD로 연결되어있고, 데이타가 실행될려면 주기억장치(RAM)로 들어가야한다. 즉, RAM이랑 HDD가 통신하는데 있어, 그러한 스케줄링을 관리한다는 말. 

 파일 생성하고 삭제

 

 

<프로세스 관리>

■ 프로세스 (*작업이라고 생각하자)

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

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

 

■ 시스템

 프로세스의 집합

 시스템 코드 수행하는 운영체제 프로세스와 사용자 코드 수행하는 사용자 프로세스로 구분

 모든 프로세스는 프로세서 분할 사용하여 병행 수행 가능

 

■ 프로세스 관리를 위한 운영체제의 기능

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

*스레드 : 프로세스보다 작은 작업 (하나의 프로세스 안에 스레드가 있다.)

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

 프로세스 중지, 재수행

 프로세스 동기화 방법 제공

 프로세스 통신 방법 제공

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

*교착 상태 : 프로세스끼리 서로 빼고박지도 못하고 교착되는 상태

 

 

<입출력 관리>

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

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

 

■ 주변장치(입출력장치) 관리를 위한 운영체제의 기능

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

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

 특정 장치 드라이버 제공

*프린터를 연결만 한다고 보자. 보통은 프린터 드라이버를 설치한다. 그러나 이러한 드라이버를 설치하지 않아도 기본적으로 한컴에서 '출력'을 하면 프린터 인쇄는 할 수 있다. (프린터의 세세한 기능까지는 건들진 못하지만, 기본적인건 가능하다!)

 

 

<파일 관리>

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

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

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

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

 

■ 파일 관리를 위한 운영체제의 기능

 파일 생성, 삭제

 디렉터리 생성, 삭제

 보조기억장치의 파일 맵핑

 안전한(비휘발성) 저장장치에 파일 저장 (RAM은 날아감. HDD보조기억장치는 안날아감. 즉 HDD에 저장해준다는 소리)

 

 

2. 시스템 보호

 보호란? : 컴퓨터 자원에서 프로그램, 프로세스, 사용자의 접근 제어 방법

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

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

 

■ 윈도우7 시스템 보호 기능으로 개별 폴더 복구하는 방법

 랜섬웨어나 바이러스로 인해 폴더에 영향을 주었을 때 파일을 복구 할 수 있는 방법이 있음

(※ 단, 이전에 윈도우 시스템 보호 기능을 켜 두셔야 하며 윈도우 시스템 보호 기능은 주기 적으로 파일을 백업하기 때문에 변형되기 전 파일로 복구가 가능한 것임)

 윈도우 시스템 보호 기능이 활성화 되어 있어야 함

*그냥 일종의 백업과 같은 개념이다. 이런게 있다는 것만 알아두자.

 

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

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

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

 

 

 

운영체제 서비스

 

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

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

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

*우리가 따로 운영체제를 실행하는게 아닌, 컴퓨터를 키면 바로 OS가 시작된다. 즉 이런걸 부팅이라고 한다.

*ROM : 메인보드에 이미 공간이다

*바이오스 : ROM에 있는 프로그램이다. 컴퓨터 켜기 전, WINDOW 화면 전, 제조사로고 등 뭔가 실행되는게 보인다. 바로 그거다.

*OS가 켜지는 과정 : ROM >> 바이오스 >> 부팅 프로그램 >> OS(윈도우) >> 기타 프로그램(백신프로그램 )

 

 

2. 사용자 서비스 제공

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

 CLI(Command Line Interface, 명령 라인 인터 페이스) : ex)리눅스

 사용자가 키보드 등으로 명령어 입력하여 시스템에서 응답 받은 후, 또 다른 명령어를 입력 하여 시스템을 동작하게 하는 텍스트 전용 인터페이스

 

■ 메뉴 인터페이스

 메뉴 등을 사용하여 시스템과 상호작용  사용 매우 편리, 배우거나 기억해야 할 명령 없 음

 

■ GUI(Graphical User Interface, 그래픽 사용자 인 터페이스)

 윈도우 환경에서 사용자에게 정보와 작업을 표현하는 텍스트, 레이블이나 텍스트 탐색과 함께 그래픽 아이콘과 시각적 표시기, 버튼이나 스크롤바와 같은 위젯(Widget) 그래픽 제어 요소를 사용

 

■ 프로그램 실행

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

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

 

■ 입출력 동작 수행

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

 

■ 파일 시스템 조작

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

 

■ 통신(네트워크)

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

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

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

 

■ 오류 탐지

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

*디스크 조각 모음, HDD 배드섹터 검출

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

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

 

 

3. 시스템 서비스

■ 자원 할당

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

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

 

■ 계정

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

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

 

■ 보호와 보안

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

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

 

 보호와 보안의 차이

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

*내가 윈도우가 깔린 C드라이브 안에 들어갈 때, '주의하세요. 주인님! 이거 파일 건들면 OS 망가져요. 조심하세요!'

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

*내 PC에 누군가 접근했네? 안돼! 이건 우리 주인님 컴퓨터야! 접근 못해!

 

 

4. 시스템 호출 서비스

 실행 중인 프로그램과 운영체제 간의 인터페이스, API(Application Programming Interfaces)라고도 함

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

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

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

 

■ 시스템 호출 방법

 프로그램에서 명령이나 서브루틴의 호출 형태로 호출

 시스템에서 명령 해석기를 사용하여 대화 형태로 호출

 

■ 운영체제가 제공하는 일반적인 시스템 호출

프로세스 제어, 파일 조작, 장치 관리, 정보 유지 등

 

 


운영체제의 미래

 

1. 사람 같은 인공지능 OS , 미래 아닌 현재형 (예시, IP소프트의 아멜리아)

앞서 대화는 일상 속의 대화처럼 평범해 보이지만, 사실은 사람과 컴퓨터 운영체제(OS)가 실제 나눈 대화 내용  >> 컴퓨터와의 대화가 새삼스럽게 놀랄 만한 것은 아니나 주목할 만한 점은 OS가 기존의 단순 정보전달 차원에 서 문제 해결능력을 갖추는 단계까지 이르렀다는 점

*한마디로 OS가 단순한 정보전달만 해주는게 아닌, 대화를 통해 문제해결능력도 갖춘다. 즉 학습한다!

 

■ 아멜리아는 새로운 인공지능 접근법인 ‘인지 컴퓨팅 (Cognitive computing)’을 적용한 시스템

■ 인지 컴퓨팅의 가장 큰 특징은 학습이 가능한 기계라는 것

 미국 IT 서비스 회사 IP소프트가 개발 중에 있는 아멜 리아는 교과서·대화 기록·이메일 등 모든 종류의 텍 스트로부터 배움 인지 컴퓨팅의 가장 큰 특징은 학습이 가능한 기계라는 것

 아멜리아가 받아들인 데이터에 답이 들어있는 한 OS는 문제를 해결할 수 능력을 지니게 됨

 

 

2. 구글 OS 푸크시아

 구글이 크롬에 이어 세번째 OS인 '푸크시아'를 최근 개발자들에게 공개함

 초기버전이기 때문에 앞으로 변경될 가능성이 많지 만, IoT 및 ATM기 등 확장성을 염두한 것이라는 평 가가 나오면서 관심이 높아지고 있음

 ‘푸크시아'가 당초 임베디드 시스템 위한 OS로 개발 되다가, 태블릿PC와 스마트폰은 물론, 사물인터넷 및 ATM기, 심지어 신호등을 비롯한 일상의 기기에 도 적용이 가능함

 

 

3. 스마트카 운영체제

 십여 년 전만 해도 자동차는 단순한 이동 수단이었다. 하지만 빠르게 발전하는 정보기술(IT)이 차 안으로 들어오면서 이제 차는 내비게이션·전화·메시지·오디오·영상·게임 등 다양한 IT 서비스가 가능한 공간으로 발전함

 스마트폰에서 이용하던 다양한 서비스를 ‘스마트카’ 안에서 즐기게 된 것

 차가 ‘바퀴 달린 거대한 스마트폰’으로 진화하면서 스마트폰 시장에서 벌어진 경쟁이 자동차 시장으로 확산되고 있다.

 

■ 스마트카 OS가 바꾼 생활

 자동차에 탑재되는 OS는 운전자가 길 안내와 음악 감상 등을 편리하게 이용하고 보다 안전하게 운전할 수 있는 환경을 만드는 데 집중하고 있음

 예전에는 내비게이션에 목적지를 입력하고 듣고 싶은 음악을 고르려면 버튼을 누르거나 화면을 조작해야 함

 하지만 카플레이와 안드로이드 오토 등 OS가 탑재 된 스마트카는 목소리만 듣고도 길 안내를 시작하고 전화를 연결하는가 하면, 메시지를 보내고 음악을 틀어줌

 

■ 스마트카 OS의 현재의 기술력

 자동차에 탑재되는 OS는 운전자가 길 안내와 음악 감상 등을 편리하게 이용하고, 보다 안전하게 운전할 수 있는 환경을 만드는데 집중하고 있음

 주행 중 필요하면 “가까운 휴게소를 안내해줘” 혹은 “졸음 쫓을 수 있는 음악을 켜줘”, “친구에게 전화 걸 어줘”라는 명령으로 차 내 서비스를 제어할 수 있는 것

 

국내 스마트카 OS 상황

 현대차는 지난해 커넥티드카에 최적화된 독자적인 차량용 운영체제 ‘ccOS (connec-ted car Operating System)’를 개발하고 있다고 밝혔음

 현대차는 ccOS가 주행에 필요한 수많은 기술을 연결하는 커넥티드카 환경을 안정적으로 구축하고, 방대한 데이터를 신속하게 처리할 수 있는 고도화된 소프트웨어 플랫폼이라고 설명했음

 리눅스 기반의 오픈 소스가 활용될 계획

 현대차는 남양연구소 차량IT개발센터 내 ccOS 개발 을 전담하는 소프트웨어 개발팀도 신설했다. 현대차 는 차종 간 호환성 확보 등을 위한 다양한 시뮬레이 션 테스트를 거쳐 2020년 ccOS가 탑재된 콘셉트카 를 출시할 것이라고 함

 

 

학습정리

■ 운영체제의 기능
 운영체제 기능은 크게 자원 관리 기능, 시스템 보호, 네트워킹, 명령 해석기와 시스템 관리으로 구분된다.
 자원 관리 기능에는 메모리 관리, 프로세스 관리, 주변장치 관리, 파일 관리가 있다.
 운영체제는 파일 사용 권한 부여하고 데이터 암호화 등 서비스를 제공하며 데이터와 시스템을 보안한다.
 프로세서는 다양한 방법으로 구성된 네트워크 이용, 완전 접속과 부분 접속 방법으로 연결한다.

 

■ 운영체제 서비스
 부트스트래핑 서비스는 운영체제를 메인 메모리에 적재하는 과정이다.
 사용자 서비스에는 사용자 인터페이스, 메뉴 인터페이스, GUI(Graphical User Interface), 프로그램 실행, 입출력 동작 수  행, 파일 시스템 조작, 통신(네트워크), 오류 탐지가 있다.
 시스템 서비스에는 자원 할당, 계정, 보호와 보안이 있다.

 

■ 운영체제의 미래
 사람 같은 인공지능 OS 즉, OS가 기존의 단순 정보전달 차원에서 문제 해결능력을 갖추는 단계까지 이르렀다.
 새로운 운영체제는 태블릿PC와 스마트폰은 물론, 사물인터넷 및 ATM기, 심지어 신호등을 비롯한 일상의 기기에도 적용이 가능하다.
 애플과 구글, 마이크로소프트(MS) 등 주요 기업이 스마트카에 탑재하는 운영체제(OS)를 선보이고 있다.

'컴퓨터공학 > 운영체제' 카테고리의 다른 글

6. 스케쥴링 알고리즘  (0) 2024.06.25
5. 프로세서 스케쥴링  (0) 2024.06.12
4. 스레드의 개념  (1) 2024.05.26
3. 프로세스의 개념  (0) 2024.05.26
1. 운영체제 개요  (2) 2024.05.21