꺼내먹는지식 준

운영체제란? 본문

CS/OS

운영체제란?

알 수 없는 사용자 2022. 3. 5. 15:51

OS 를 모르면 굉장히 답답하다. 

항상 필요성을 느껴왔기에 오늘부터 쉽게 배우는 운영체제 책을 탐독하기로 한다. 

 

총 54 챕터, 앞으로 하루의 한 챕터씩 2달간의 장정을 함께 해보자. 

이글을 읽는 독자들은 요약된 내용을 읽으니 2주일을 목표로 달려보자.

 

OS:

PC: MAC, Unix, Linuxm, Window 등 

모바일: IOS, Andoid 

그외: MP3, 네이게이션 등에도 OS 는 포함되어 있다. (CPU 성능이 낮고, 메모리 크기도 작은 시스템에 내장되는 운영체제. 임베디드 움영체제) 

 

운영체제의 기능 

 

1. 기능 추가, 성능 향상 

2. 자원 관리 

 

운영체제가 없다면? 

처음 당시 구현한 기능 외에 다른 기능 추가가 불가능하다. 

무선 통신 사용이 불가하여 MP3 파일 공유가 불가능하다. 

ex. 스마트폰은 운영체제가 있기에 app 다운을 통해 네비게이션, 게임 등으로 사용 가능 

 

자원 관리 측면? 

컴퓨터, 폰 사용시 채팅, 음악, 웹, 워드 등 다양한 응용 프로그램(소프트웨어)을 동시에 사용한다. 응용 프로그램에 비해 장치는 키보드, CPU, 메모리, 모니터, 하드디스크, 마우스로 장치가 제한적이고 각각의 응용 프로그램들은 장치를 독차지 하려 한다. 

(워드, 채팅은 모두 키보드를 필요로 한다.) 이 때 자원을 누구에게 먼저 주어야 할지 결정하는 강력한 중제자가 바로 운영체제이다. 

How? 

사용자가 직접 접근하는 것을 막는다.(즉, 숨겨져있다) 우리가 하드디스크에 데이터를 저장해도, 컴퓨터 내부 정확히 어디에 저장되는지는 모른다. 컴퓨터가 알아서 잘 정리해서 배치한다. 하지만 사용자에게 interface를 통해 접근하여 수정할 수 있도록 한다. 즉 사용자가 쉽게 사용할 수 있도록 하고, 타인이 함부로 접근하여 지우는 상황을 막는다. 우리가 만약 하드디스크 특정 위치에 접근할 수 있다면 기존 데이터와 꼬일게 명확하다. (파이썬 모듈 설치 하다가도 꼬이는게 우리다.)

 

정리하자면, 운영체제는 사용자에게 인터페이스를 제공, 응용 프로그램에 자원을 적절히 배분, 악의적인 접근을 막는 관리자 역할이다. + 기능 확장

출처: 나

인터페이스 추가 설명

 

하드웨어 인터페이스 

마우스, 모니터도 종류가 다양하다. 각 제품마다 별도의 소프트웨어를 설치해야 한다면 힘들다. 그러나 운영체제는 다양한 장치(CPU, 메모리, 키보드, 마우스)를 일관된 방법으로 사용할 수 있도록 하는 하드웨어 인터페이스를 제공한다. 

하드웨어 인터페이스 지원은 하드웨어 장치와 상호작용하기 위하여 만들어진 드라이버를 설치해야한다. 드라이버는 운영체제 설치시 자동 설치되는데, 경우에 따라 따로 설치해야 한다. 드라이버가 하드웨어 인터페이스이다. 

 

사용자 인터페이스 

사용자 인터페이스는 운영체제를 편리하게 사용하도록 지원된다. 예전 Unix, MS-DOS 의 경우 마으수 없이 키보드로만 사용해서 아주 불편했다. 그러나 현재 운영체제는 GUI (Graphical User Interface)를 제공하여 대부분 마우스로 수행한다. (터치페드도 사용자 인터페이스에 해당된다.)

(이해한바에 따르면 마우스가 하드웨어 장치, 사용자 인터페이스(GUI)가 커서, 드라이버 즉 하드웨어 인터페이스가 커서와 마우스 연동 정도로 이해했다.)

 

추가 사항 유틸 

컴퓨터 바이러스는 운영체제 영역에 침범하여 시스템을 망친다. (GUI를 사용하는 우리는 막을 제간이 없다. 운영체제는 악성 프로그램부터 컴퓨터 자원과 다른 프로그램을 보호 하기도 한다. 그러나 워낙 운영체제의 기능이 많고 복잡하며 바이러스의 지속적 발달로 막는 것이 한계가 있다. 이로인해 바이러스 검사, 디스크 조각 모음, 압축 프로그램 같이 운영체제를 보조하는 소프트웨어가 등장했고, 이걸 유틸이라 한다. 

 

운영 체제의 목표 

 

효율성 

운영체제는 자원을 관리한다. 이를 더 효율적으로 하기 위하여 운영체제 크기 축소, 코드 최적화 등이 이루어진다. 

 

안정성 

밤센 작업물이 날라가면 억울하다. 운영체제 위에서 이루어지는 사용자와 응용 프로그램의 상호작용은 안정적이어야 한다. 이 안정성은 '자원 보호' (안전 , 하드웨어적 보완) 를 해야하며, 문제 발생시 복구하는 결함 포용 기능을 수행해야 한다. 

 

확장성 

다양한 시스템 자원을 추가하거나 제거하기 편리하도록 확장성이 좋아야한다. 키보드 마우스 등을 연결시 바로 플레이 가능한 플러그 앤드 플레이 기능등을 제공해야 하며, 앞으로 개발 될 하드웨어도 고려하여 사용자의 편리성과 하드웨어 제작자의 편리성을 모두 고려하여 디자인 되어야 한다. 

 

편리성 

사용자의 편리성과 효율성에서 적절 지점을 찾아야 한다. 사용자에게 메모리 용량 제한 혹은 마우스 사용 제한 등을 가한다면 운영체제의 효율성을 높아져도 사용자가 불편하다. 즉, 편리성 제공과 동시에 자원 낭비 요소를 막아야 한다.

 

생각해봐요

 

운영체제란 무엇인가?

 

운영체제의 목표는? 

'CS > OS' 카테고리의 다른 글

GIL, Global Interpreter Lock 간단 정리  (0) 2022.01.28
Reference Counts (Python)  (0) 2022.01.28
Garbage Collector (Python )  (0) 2022.01.28
Comments