OS란?
Operating System의 약자로 컴퓨터를 켜면 가장먼자 만나게 되는 소프트웨어
ex) 컴퓨터 : Windox, Mac OS, Linux, Unix
핸드폰 : Android, IOS
운영체제의 정의
운영체제는 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어
임베디드 운영체제 (embedded operating system)
- CPU의 성능이 낮고 메모리 크기가 작은 시스템에 내장하도록만든 운영체제
- 임베디드 시스템 이라고도 한다.
운영체제의 필요성
- 운영체제가 있는기계 VS 운영체제가 없는 기계
- 운영체제가 없는 기계 : 제작 당시 구현한 기능 밖에 동작하지 않는다.
- 운영체제가 있는 기계 : 출시 이후 기능을 추가하거나 성능의 변경이 가능하므로 성능의 효율및 향상성을 꾀할수있다.
운영체제의 역할
- 자원관리
- 응용프로그램에 비해 컴퓨터를 구성하는 장치는 매우 제한적이기 때문에 자원을 관리하는 강력한 중재자가 필요
- 운영체제는 적당한 순서로 자원을 분배하고 회수 하여 자원을 관리한다.
- 자원 보호
- 악의 적인 응용 프로그램으로 부터 컴퓨터의 자원을 보호하는 역할
- 비정상적인 작업 및 사용자가 직접 자원에 접근하는 것을 막음으로 부터 컴퓨터의 자원을 보호
- 하드웨어 인터페이스 제공
- 인터페이스(interface): 사용자가 컴퓨터를 사용할수 있도록 해주고 그 결과를 알려주는것
- 다양한 종류의 하드웨어를 복잡한 과정없이 사용할수 있도록 지원한다.
- 사용자 인터페이스 제공
- 사용자가 OS를 편리하게 사용하도록 지원한다.
운영체제의 목표
운영체제의 역할 운영체제의 목표
자원 관리 | 효율성 |
자원 보호 | 안정성 |
하드웨어 인터페이스 제공 | 확장성 |
사용자 인터페이스 제공 | 편리성 |
- 효율성
- 자원을 효율적으로 관리하는것
- 같은 자원을 관리 하더라도 효율적으로 관리해야한다는 의미
- 안정성
- 운영체제가 불안정 하면 모든작업이 불안정 하다.
- 사용자와 응용 프로그램의 안전 문제와 하드웨어적인 보안 문제를 처리 할수있어야 하며 시스템에 문제가 발생 했을때 이전으로 복구하는 결함포용 (fault tolerant)기능을 수행해야한다.
- 즉, 운영체제는 안정성이 담보 되어야한다.
- 확장성
- 운영체제는 다양한 시스템 자원을 추가하거나 제거하기 편리 해야 한다.
- 운영체제는 하드웨어의 종류에 상관없이 꽂으면 바로 실행할수있는 플러그 앤드 플레이 (plug & play)기능을 제공 해야한다.
- 편리성
- 사용자가 편리하게 작업을 할수 있는 환경을 제공 해야한다.
- 응용프로그램과 사용자에게 다양한 편리성을 제공 하면서도 자원의 낭비 요소를 막아야한다.
운영체제의 역사
- 초창기 컴퓨터(1940년대)최초의 컴퓨터 '애니악'진공관으로 1과 0을 표현 2진법을 사용
- 일괄 작업 시스템(1950년대)천공 카드리더 : 현대 OMR의 원조로 구멍을 뚫어서 문자나 숫자를 표현라인 프린터 : 문자만 출력하는 프린터로 한번에 한줄만 출력해서 라인프린터가 되었다.
- 대화형 시스템(1960년대 초반)키보드 - 타자기 쿼티(Querty)자판에 다양한 키를 추가해서 제작모니터 - 단색 모니터대화형 시스템(Interactive System)은 컴퓨터와 사용자 간의 대화를 통해서 작업이 이루어진다.일괄 작업 시스템과 다르게 작업 중간에 결과 값을 보여줄 수 있다. 하지만 작업시간을 예측하기 어렵다.
4-1 . 시분할 시스템(1960년대 후반)다중프로그래밍 Multi Programming(= 시분할 시스템) 기술의 등장시분할 시스템에서는 CPU 시간을 잘게 쪼개어 작업들에 나누어줌으로써 모든 작업이 동시에 처리되는 것처럼 보인다.
4-2. 다중 사용자 시스템다중 사용자는 여러명의 컴퓨터 사용자에 의한 동시 접근을 허용하는 것을 말한다.이로 인해 값비싼 컴퓨터를 한 사람이 독점하는 것이 아닌 여러 사람이 동시에 사용할 수 있게 되었다.
- 분산 시스템(1970년대 후반)분산시스템 = 개인용 컴퓨터와 인터넷이 보급되면서 값싼 컴퓨터를 하나로 묶어 대형 컴퓨터에 버금가는 시스템
- 클라이언트/서버 시스템(1990년대~현재)클라이언트/서버 시스템은 분산 시스템의 문제점을 해결한 기술이다.분산 시스템은 시스템에 참가하는 모든 컴퓨터가 동일한 지위여서 여러 문제가 생겼다.클라이언트/서버 시스템은 동일한 지위가 아닌 작업을 요청하는 클라이언트와 응답하는 서버의 이중 구조로 나뉜다. 하지만 서버 과부하가 되면 서버 공급이 중단될 수도 있는 단점이 있다.
- P2P 시스템(2000년대 초반~현재)P2P 시스템은 서버 과부하의 문제가 적다.왜냐하면 클라이언트와 서버가 아닌 사용자와 사용자가 직접 연결되어 있기 때문이다.
- 클라우드 컴퓨팅인터넷 접속을 통해 데이터 이동이 자유로운 컴퓨팅 환경
- 사물 인터넷(IoT)인터넷으로 연결된 사물들이 데이터를 주고 받아 스스로 분석하고 학습한 정보를 제공해준다.
3. 운영체제의 구조
커널(kenel)과 인터페이스
- 프로세스 관리, 메모리 관리, 저장장치와 같은 운영체제의 핵심적인 기능을 모아 놓은것
- 운영체제의 성능은 커널이 좌우 한다.
- 운영체제에도 인터페이스 가 있는데 이는 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 한다.
- 운영체제는 커널과 인터페이스를 분리하여 같은 커널을 사용하더라도 다른 인터페이스를 가진 형태로 제작 할수 있다.
시스템 호출과 디바이스 드라이버
시스템 호출
- 시스템호출(System call)은 커널이 자신을 보호하기 위해 만든 인터페이스이다.
- 커널은 사용자나 응용 프로그램으로 부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단한다.
- 이러한 자원을 이용하려면 시스템 호출 이라는 인터페이스를 이용하여야한다.
- 커널이 제공하는 시스템 자원의 사용과 연관된 함수
- 응용프로그램이 하드웨어 자원에 접근 하거나 운영체제가 제공하는 서비스를 이용할때는 시스템 호출을 사용해야한다.
시스템 호출 방식
- 직접접근 : 사용자가 직접 컴퓨터 자원에 접근하여 작업하는 방식
- 사용자가 모든것을 처리 해야한다.
- 단점은 정보가 어디에있는지 등을 전부 알아야하며 사용자의 부주의로 인해 자원을 보호하기 어렵다.
- 시스템호출을 통한 접근 : 누군가에게 요청하여 작업의 결과만 받는방식
드라이버
- 커널과 하드웨어의 인터페이스
- 커널이 제공하는 드라이버도 있고 하드웨어 제작자가 제공하는 드라이버도 있다.
- 하드웨어는 커널과 직접 연결되기도 하고 하드웨어 제작자가 제공하는 드라이버를 통해 연결되기도 한다.
커널의 구성
커널 : 운영체제의 핵심 기능을 모아놓은 것
핵심 기능 설명
프로세스 관리 | 프로세스에 CPU를 배분하고 작업에 필요한 제반환경을 제공 |
메모리 관리 | 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상 공간을 제공 |
파일 시스템 관리 | 데이터를 저장하고 접근할 수 있는 인터페이스를 제공 |
입출력 관리 | 필요한 입 출력과 출력 서비스를 제공 |
프로세스간 통신관리 | 공동 작업을 위한 프로세스간 통신 환경을 지원 |
단일형 구조 커널
단일형 구조 : monolithic architecture 커널은 초창기의 운영체제의 구조
- 커널의 핵심 기능을 구현 하는 모듈 들이 구분없이 하나로 구성 되어 있다.
- 대표적인 운영체제 : MS-DOS, VMS, 초창기 UNIX
장점
- 모듈간 통신 비용이 줄어들어 효율적인 운영이 가능
단점
- 모든 모듈이 하나로 묶여 있기 때문에 버그나 오류를 처리하기 어렵다
- 운영체제의 여러 기능이 서로 연결 되어있어 상호 의존성이 높기 때문에 기능상의 작은 결함이 시스템 전체로 확산 된다.
- 다양한 환경의 시스템에 적용하기 어렵다.
- 현대의 운영체제는 매우 크고 복잡하기 때문에 완전 단일형 구조의 운영체제를 구현하기 어렵다.
계층형 커널
계층형 구조 : Layered architecture 커널은 단일형 구조의 커널의 발전된형태로 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층간 통신을 통해 운영체제를 구현하는 방식
장점
- 비슷한 기능을 모아 모듈화 했기 때문에 단일형 구조보다 버그나 오류를 쉽게 처리할수있다.
- 해당 계층만 따로 수정하면 되기때문에 디버깅에 용이하다.
마이크로 구조 커널
마이크로 구조 : micro architecture
계층형 구조의 커널의 크기가 계속 커지고 계층이 늘어나다 보니 커널의 소스가 바애해짐에 따라 관리의 어려움을 느껴 개발된 구조 이다.
계층형 구조의 접근 방식과 반대로 개발된 커널이다.
- 마이크로 구조의 커널의 운영체제는 프로세스의 관리 메모리 관리 프로세스 간 통신 관리등 가장 기본적인 기능만을 제공
- 마이크로 구조에서 각 모듈은 독립적으로 작동하기 때문에 하나의 모듈이 실패 하더라도 전체 운영체제가 멈추지는 않는다.
가상머신
위 그림처럼 가상머신은 운영체제와 응용 프로그램 사이에서 작동하는프로그램
개발자가 하나의 코드만 만들면 여러 운영체제에서 똑같이 실행할수있다.
- 멀티 OS를 가능하게 해준다.
'책정리' 카테고리의 다른 글
모두의 네트워크 정리 7~9(응용계층 ~ 무선 네트워크) (0) | 2022.07.13 |
---|---|
모두의 네트워크정리 4~6강 (데이터링크, 네트워크, 전송 계층) (0) | 2022.07.13 |
모두의 네트워크 정리 - 1~3강 (네트워크 구조, 물리계층) (0) | 2022.07.13 |