..

운영체제 정의 와 구조

## 운영체제의 개념 ?

사용자가 응용 프로그램을 실행할수 있는 기반 환경을 제공하여 컴퓨터를 편리하게 사용할수 있도록 도와주고 , 하드웨어를 효율적으로 사용할수 있도록 다양한 기능을 제공하는 소프트웨어이다.

조금더 파자면

자원 관리자( resource Manager ) 라고 할수 있다.

물리적인 자원 (CPU,DRAM,Disk,Flash,Network) 를 가상화 시켜서 더 효율적으로 자원을 관리 할수 있도록 해주는 시스템을 말한다.

운영 체제와 커널의 용어의 대해서 햇갈리낟. 커널은 항상 메모리에 상주?(to be there all the time) 해서 자원을 관리하는것을 의미하고 , 운영체제는 항상 메모리에 상주하지는 않는다. Linux 환경에서는 OS 가 항상 메모리에 상주하기 때문에 Linux 에서는 운영체제와 커널이 같다고 생각하면된다.

운영체제의 종류

가정집이나 학교 등에서 사용하는 컴퓨터엔 WINDOWS , MAC OS 이 있다.

애플 스마트폰엔 IOS 그리고 대부분의 스마트폰엔 안드로이드 가 많이들 사용되고 있다.

그리고 개발자 혹은 엔지니어 들이 대부분 많이 사용한다. 특히 안드로이드도 이 리눅스 커널로 만들어졌다. 리눅스의 특징이라면 이 os 들중 유일한 오픈소스 운영체제 이다.

운영체제 의 역할

기본적인 역할은

  • 프로그램을 실행하기 쉽게 만들어준다.
  • 시스템을 올바르고 효율적이게 작동하도록 관리해준다.

컴퓨터 자원을 관리하는 면에서 운영체제의 역할은 다음과 같다.

  • 제어자 (controler)
    • 다른 프로그램이 작업을 할 수 있는 환경만 제공하는 컨트롤러의 역할을 한다.
  • 자원 할당자 또는 관리자(Resource Allocator or Administrator)
    • 컴퓨터 시스템의 자원을 공정하고 효율적으로 분배하기 위해 자원 할당자 혹은 관리자의 역할을 한다.
  • 응용 프로그램 과 입출력 장치의 제어자
    • 컴퓨터 시스템 을 부적절하게 사용하거나 오류 발생을 방지한다.

운영체제의 기능

운영체제의 기능은 크게 자원관리,시스템관리 로 분류된다.

  • 자원관리 : 메모리 관리(메인 메모리, 보조기억장치),프로세스 관리,주변장치 관리,파일(데이터)
  • 시스템관리 : 시스템보호(사용자 권한 부여),네트워크(통신),command interpreter 등의 기능을 지원

운영체제의 유형

  1. 일괄처리 시스템
  2. 다중 프로그래밍 시스템
    • 일괄 처리시스템의 가장 큰 문제점인 프로세서가 작업 중 일때는 입출력 작업이 불가능하여 프로레서와 메인 메모리 활용도가 떨어진다. 그래서 프로그램의 유효시간(idle time) 동안 다른 프로그램이 프로세서를 사용하도록 해 프로세서의 효율을 극대화 시키기 위한 시스템이다.
  3. 사분할 시스템
    • 다중 프로그래밍의 확장된 개념으로, 각 프로그램에 일정한 프로세서 사용시간 또는 규정 시간량을 할당하여 여러 사용자에게 짧은 간격으로 프로세서를 번갈아 가며 할당해 마치 한 사용자 혼자 프로세서를 독점하고 있는 듯 착각하게 해 여러 사용자가 단일 시스템을 동시에 사용할 수 있게 한다.
  4. 다중 처리 시스템
    • 단일 컴퓨터에서 둘 이상의 프로세서를 사용해 동시에 둘 이상의 프로세스를 지원하는 시스템이다.
  5. 실시간 처리 시스템
    • 사용할수 있는 자원이 한정되어 있는 상황에서 작업 수행이 요청되었을 때, 이를 제한된 시간안에 처리 해 결과를 내주는것을 말한다. 즉 , 작업의 요청에서 수행결과를 얻기까지의 시간적인 제약이 존재하는 시스템 그 제약의 엄격함의 따라 경성 실시간 시스템과 연성 실시간 시스템으로 나뉜다.

      경성 실시간 처리 시스템 : 작업의 실행 시작이나 완료의 대한 시간제약 조건을 무조건 지켜야 하는 시스템 이다.(무기 제어,미사일 자동 조준)