본문 바로가기
컴퓨터개론

[컴퓨터개론] OS 운영체제

by seung_nari 2022. 6. 3.

운영체제란

- 컴퓨터의 사용자와 하드웨어 사이에서 가교 역할을 하는 프로그램

- 하드웨어 그 자체가 가지고 있는 능력을 십분 발휘되도록 제어해주는 프로그램

- 컴퓨터가 컴퓨터 밖의 세계와 상호 동작하는 방법을 정의한 프로그램

 

운영체제의 역할

- 사용자 인터페이스와 자원관리를 위한 프로그램의 집합

 

- 하드웨어 : 컴퓨터의 물리적 부품

- 시스템 소프트웨어 : 운영체제 + 시스템 프로그램(컴퓨터 하드웨어에 의존적이며 시스템을 정상적으로 작동시키기 위해 필요한 프로그램)

- 응용 소프트웨어 : 응용 프로그램 집단

 

운영체제의 5가지 구성 요소

- 쉘 : 사용자나 응용 프로그램이 운영체제와 의사소통을 위해 필요한 요소

- 장치 관리 : 시스템에 있는 주변 장치(키보드, 모니터, 프린터) 제어

- 파일 관리 : 사용자 또는 프로그래머가 파일 만들고, 지우고, 수정하고 이름 부여하며, 디렉토리 관리

- 메모리 관리 : 주기억장치 관리, 실행될 프로그램을 위해 주기억 장치의 일정 부분을 할당하거나 주기억 장치 안에 있는 프로그램들의 경계를 설정하여 서로 침범하지 못하게 하는 등의 일을 처리

- 처리기 관리 : 컴퓨터의 처리기 즉, CPU의 처리 능력을 각 작업에 효과적으로 배분하도록 관리

 

운영체제 위치

운영체제는 커널과 유틸리티 프로그램으로 나뉜다.

커널 :

- 사용자와 실행 프로그램을 위해 매우 빈번하게 사용되는 부분

- 부팅될때 주기억 장치에 적재되어 시스템의 운영이 종료될때까지 계속 주기억장치에 남아있는 부분

- why? 디스트와 주기억장치 사이의 입출력에 시간이 오래 걸리면 시스템 성능이 떨어진다.

 

유틸리티 프로그램 :

- why 커널과 분리? : 주기억장치의 용량 때문에, 사용자 인터페이스의 대부분을 차지한다.

 

듀얼모드(Dual Mode)

- why? : 시스템 보호, 장치들의 효율적 관리

 

유저 모드(User mode) : 

- 사용자 프로그램, 응용 프로그램 등이 실행되는 모드

- 커널 모드를 이용하고 싶으면 시스템 호출을 한다.

 

커널 모드(Kernel Mode):

- 운영체제가 실행되는 모드, 모든 명령어 수행 가능

 

운영체제의 기능

- 프로세서, 기억장치, 입출력 장치, 파일 및 정보 등의 자원을 관리

- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능 제공

- 사용자와 시스템 간의 편리한 인터페이스를 제공

- 시스템의 각종 하드웨어와 네트워크를 관리 및 제어

- 데이터를 관리하고 데이터 및 자원의 공유 기능 제공

- 시스템의 오류를 검사 및 복구

- 자원 보호 기능 제공

- 입출력 보조 기능 제공

 

운영체제의 목적

: 운영체제의 목적에는 처리능력 향상, 반환 시간 단축, 사용 가능도 향상, 신뢰도 향상 등이 있다. 처리능력, 반환시간, 사용가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 된다.

- 처리능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양

- 반환시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

- 사용가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

- 신뢰도(Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도

 

 

운영체제의 종류

윈도즈(Windows) 운영체제

- MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 응용 프로그램으로서, 마이크로 소프트사가 개발한 운영체제

- 윈도즈 95를 발표한 이후에 98, ME, XP, 7, 8, 10 등의 버전으로 지속적으로 출시

 

특징

1) GUI 제공 : 그래픽 사용자 인터페이스 제공

2) 선점형 멀티태스킹 방식 제공 : 동시에 여러 개의 프로그램을 실행하면서, 운영체제가 각 작업의 CPU 이용시간 제어

3) 자동감지 기능 제공 : 하드웨어 설치 시, 필요한 시스템 환경을 운영체제가 자동으로 구성해줌

4) OLE(Object Linking and Embedding)사용 : 개체를 현재 작성 중인 문서에 자유롭게 연결 or 삽입하여 편집할 수 있게 하는 기능 제공

 

유닉스(Unix) 운영체제

- 교육 및 연구기관에서 사용되는 범용 다중 사용자 방식의 시분할 운영체제

- 처음부터 다양한 시스템에 서로 이식할 수 있고

- 멀티 태스킹과 다중 사용자를 지원하도록 설계되었다.

 

특징

1) 대화식 운영체제 기능

- 프롬프트가 나타난 상태에서, 사용자가 명령을 입력하면 시스템은 그 명령을 수행

- 사용자 명령 기반의 대화식 운영체제 기능 제공

2) 다중 작업 기능

- 다수의 작업(프로세스)이 중앙처리장치(CPU)와 같은 공용자원을 나누어 사용

- 한번에 하나 이상의 작업을 수행하는 기능 제공

3) 다중 사용작 기능

- 여러 대의 단말(키보드, 모니터)이 하나의 컴퓨터에 연결되어,

- 여러 사람이 동시에 시스템을 사용

=> 각각의 작업을 수행할 수 있는 기능 제공

4) 이식성

- 90% 이상 C언어로 구현

- 시스템 프로그램이 모듈화 되어있음

=> 다른 하드웨어 기종으로 쉽게 이식 가능

5) 계층적 트리구조 파일 시스템

- 계층적 트리구조

=> 통합적인 파일 관리 용이

 

1) 리눅스(Linux) 운영체제

- 유닉스 기반으로 개발

- 리누스 토발즈

- 소스코드가 공개된 오픈소스 기반의 운영체제

- 데비안, 레드햇, Fedora, Ubuntu, CentOS와 같이 다양하게 출시되고있음

- 유닉스 계열의 운영체제

=> 대화식 운영체제, 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템

 

2) 맥(Mac) 운영체제

- 애플이 유닉스를 기반으로 개발한 그래픽 사용자 인터페이스 기반의 운영체제

- 애플사는 1999년 OS X로 업데이트 했음

- 이후 클라이언트 버전, 서버 제품 등으로 제품군 확대함

- 2017년 OS X 시에라, 2018년 모하비 등을 지속적으로 발표하고 있음

 

3) 안드로이드(Android) 운영체제

- 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어,

- 사용자 인터페이스,

- 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트 등)

- 을 표함하고 있는 운영체제.

 

안드로이드 특징

1) 리눅스 기반 : 안드로이드는 리눅스 커널 위에서 동작

2) 자바와 코틀린 언어

- 고수준 언어를 사용하여 응용 프로그램을 작성

- 생산성이 높으며, 전문 지식이 없어도 개발 가능

3) 런타임 라이브러리

- 컴파일 된 바이트 코드 구동 가능

4) 안드로이드 소프트웨어 개발 키트(SDK)

- 응용 프로그램을 개발하는 데 필요한 각종 도구, API 제공

 

 

 

 

 

 

참고 : https://gaebom.tistory.com/50

참고 : https://computer-science-student.tistory.com/384

댓글