Computing/Operating System

Operating System 1

i독 2015. 4. 12. 20:04

 0. 
  운영체제는 (사용자의)목적에 따라 이용을 최적화시킨다.

 1.
  컴퓨터 시스템은 통상적으로 운영체제, 하드웨어, 응용프로그램, 사용자 네가지의 구성요소를 가진다. 하드웨어는 기본계산자원을 제공하며 응용프로그램은 자원의 활용성을 높인다. 운영체제는 사용자를 위해 위 두가지의 사용을 조정한다.
  또한 구성요소로 데이터도 포함 될 수도 있다. 데이터는 자원이며 운영체제는 자원을 적절하게 사용할 수 있는 방법을 제공한다. 운영체제는 정부와 유사해서 자체로는 유용한 기능을 못하지만 환경을 제공해준다.

 2.
  사용자 관점에 따라 여러방면에 운영체제는 재설계되며 다양한 이익을 위해 구성된다.
  사용자의 관점은 사용되는 인터페이스에 따라 달라진다. 보통의 컴퓨터는 모니터,키보드, 시스템등 한 사용자가 이러한 자원을 독점하여 작업을 최대화 시킨다. 이러한 경우는 운영체제는 성능과 실용성을 위해 설계되지만 다양한 하드웨어 와 소프트웨어 자원의 공유성은 신경쓰지않는다. 
  반면에 대형컴퓨터나 미니컴퓨터에 연결된 터미널을 이용하는 경우에는 자원 이용을 극대화하도록 설계된다. 네트워크에 연결된 사용자는 자신의 전용자원을 소유하지만 서버-파일, 계산 및 프린터 서버 등을 공유하기에 사용 용이성과 자원이용간에 적절한 조화을 요구한다.

                                                        인터페이스[interface]
 두 가지 시스템 또는 장치(equipment)가 결합해 있는 경계(boundary)이며, 하드웨어적으로도 소프트웨어적으로도 사용되는 용어이다.
[네이버 지식백과](컴퓨터인터넷IT용어대사전, 2011.1.20, 일진 

 

                                                          터미널 [terminal]
 컴퓨터로 프로그램이나 데이터를 전송하거나 출력을 받기 위한 장치. 일반적으로 컴퓨터 시스템에서 사용되는 단말기에는 사용자가 정보를 입력하여 전송하고 컴퓨터에서 생성된 정보를 눈으로 볼 수 있도록, 키보드와 디스플레이(모니터) 또는 키보드와 프린터 장치 등으로 구성되어 있다. 사용자가 컴퓨터 시스템을 이용하는 위치, 즉 컴퓨터의 관점에서는 최종 단말 위치에 연결되어 동작되는 장치로써, 컴퓨터 시스템의 가장 말단에 붙어 있다는 뜻에서 이러한 용어로 불리게 되었다.
[네이버 지식백과](한글글꼴용어사전, 2000.12.25, 세종대왕기념사업회) 

 3.
  앞서 말했듯이 운영체제는 하드웨어를 관리한다. 하드웨어는 자원이며 그렇기에 운영체제는 자원 할당자로 볼 수 있다. 작업을 위해 요구되는 자원(하드웨어,응용프로그램, 입출력장치 등)을 가지는데 운영체제는 관리자로서 동작한다.
  다른 관점으로 입출력장치와 프로그램을 제어하는데에 중점을 두어 운영체제를 제어 프로그램이라고도 한다.

 5.
  위에 볼 수 있듯이 운영체제의 완벽한 정의란 모호하다. 자원을 제어하고 할당하는 기능을 사용자의 이익을 위해 재설계해서 통합한 것이 운영체제이다. 보편적인 정의는 존재하지 않으며 단순하게 보면 구매자(사용자)가 판매업자(설계자)에게 주문(요구)하는 방향에 따라 포함되는 기능(운영체제의 역활)이 다양하다.
  보다 일반적으로는 운영체제는 컴퓨터 실행시 항상 실행되는 프로그램으로 커널이라 불린다.
  (여기서의 커널의 의미는 사전에 정의된 내용과 꼭 맞다고 할 수 없습니다. 그냥 읽고 넘어가시면 충분합니다.)

 6.
  운영체제는 환경을 제공한다. 환경의 구조는 매우 다양하나 많은 공통점들이 존재한다. 그중 중요한 공통점은 다중 프로그래밍을 할 수 있는 기능이다. 일반적으로 하나의 프로그램으로는 하드웨어를 항상 바쁘게 유지할 수 없다. 자원들이 쉬지않고 계속일해야만 효율성이 증대한다. 다중 프로그래밍은 항상 CPU(하드웨어)가 일할수 있도록 구성하기에 운영체제는 사용자에게 여러프로그램을 동시에 실행시킬수 있는 환경을 제공한다. 
  운영체제는 메모리에 여러 작업들을 적재한다. 주 메모리는 모든 작업을 넣기에 작기에 처음에는 디스크상에 존재하는 특정한 공간에 유지되고 주 메모리의 할당을 기다린다. 이 특정은 공간은 디스크에 존재하는 모든 프로세스(컴퓨터 내에서 실행중인 프로그램)들로 구성되어있다. 

  ex) 메모리(512M) = [운영체제할당량 - 100M] [작업 1 - x M]  [작업 2 - y M]  [작업 3 - 412 - x - y M]
  이러한 작업은 하드웨어를 효율적으로 사용하나 작업이 끝난후 또 다른 작업을 하기에 사용자 작업간에 상호작용을 할수 없다. 이를 보완하기 위해 다중프로그램을 논리적으로 확장시킨 결과가 시분활(멀티태스킹)이다. 시분활은 CPU가 다수의 작업을 조금씩 매우 빠르게 교대로 수행하므로 작업간에 상호작용이 가능해진다. 시분활 시스템은 사용자와 시스템 간에 직접적인 통신을 제공해주는 또 다른 시스템을(대화식 또는 HANDS-ON 컴퓨터시스템) 필요로 하며 입력장치를 사용하여 운영체제나 프로그램에 직접 명령하고 출력장치의 즉각적인 응답을 기다린다. 
  시분활운영체제는 CPU스케줄링과 다중 프로그래밍을 사용한다. (CPU스케줄링에 대한 설명은 다음에 자세히 다룹니다.) 보통 프로세스는 자신이 종료되거나 입출력을 실행할 필요가 있을 때까지의 시간동안만 실행된다. 입출력은 사람의 속도로 흘러가기에 컴퓨터의 속도에 비해 상당히 늦다. 시분활이 진행되는 동안 CPU는 쉬지 않으며 운영체제는 신속하게 프로그램을 전환하는데 사용자는 이를 동시에 실행되는것 처럼 느낀다.
  시분활 시스템에서 운영체제는 응답 시간을 보장하기위해 작업들을 주메모리 - 디스크 사이에 적절하게 이동시킨다. 적절한 이동을 위해 가상 메모리를 사용한다. 이 기법은 메모리 저장장치의 한계로부터 자유롭게 해주기에 프로그램이 물리메모리의 크기보다 커도 가능하게 해준다.(이역시 다음에 다룹니다.)

 7.
  현대의 운영체제는 인터럽트 구동식이다. 사건은 항상 인터럽트나 트랩(오류 혹은 서비스 실행 요청에 의해 유발되는 소프트웨어에 의해 생성된 인터럽트)을 발생시켜 신호를 보낸다.  하나의 인터럽트를 처리하기 위해 하나의 인터럽트 서비스 루틴이 제공된다.
 
운영체제는 하드웨어와 소프트웨어 자원을 공유하기 때문에 오류발생시 해당 프로그램에만 문제를 일으키도록 보장해야한다. 자원의 공유 때문에 한 버그(문제)로 인하여 많은 프로그램이 악영향을 받을 수 있기 때문이다.

 7+.
  (본 내용은 컴퓨터 시스템 구조에 대한 일반적인 지식입니다. 저는 따로 컴퓨터 시스템구조 카테고리를 넣어서 따로 서술할 예정이였지만 여기서 인터럽트에 대한 보충 설명이 필요하다 판단되어 간략하게 서술합니다.)
 
컴퓨터는 단순한 형태의 초기프로그램을 가집니다. 이는 구동을 시작하기 위해 실행되며  ROM에 저장되어 있습니다. 대개 이 프로그램은 시스템의 모든 면을 초기화 시키며 운영체제를 메모리에 적재시켜며 실행시킵니다. 그런 다음 운영체제는 실행되어 작업(사건)이 발생하기를 기다립니다. 사건이 발생되면 하드웨어나 소프트트웨어로부터 발생한 인터럽트에 신호가 보내집니다.

                                                         인터럽트 [interrupt]
작동 중인 컴퓨터에 예기치 않은 문제가 발생한 경우 CPU 자체가 하드웨어적으로 상태를 체크하여 변화에 대응하는 것을 말한다. 인터럽트가 발생하면 그 순간 운영체계 내의 제어프로그램에 있는 인터럽트 처리 루틴(routine)이 작동하여 응급사태를 해결하고 인터럽트가 생기기 이전의 상태로 복귀시킨다
[네이버 지식백과]  (두산백과) 

 8.
  운영체제는 적절한 동작을 위해 운영체제 코드와 사용자 코드의 실행을 구분한다. 그러기 위한 방법은 대개 여러 실행모드를 구분하는 하드웨어를 이용한다. 적어도 독립된 두개의 동작 모드를 필요로하는데 사용자 모드와 커널모드(슈퍼바이저모드,시스템모드)이다. 이 모드를 구분하기 위해 모드비트라고 비트(0과 1을 표현하는 컴퓨터의 가장 작은 단위)가 하드웨어에 추가 되었다. 0은 커널모드, 1은 사용자모드를 의미한다.
  시스템부트시 하드웨어는 커널모드로 시작되며 메모리에 운영체제가 적재되며 사용자 모드에서는 프로세스가 시작된다. 트랩이나 인트럽트 발생시 하드웨어는 커널모드로 전환한다. 이러한 이중 모드가 없을경우에 잘못된 사용자 프로그램이 데이터를 운영체제 부분에 덮어기록하여 운영체제를 지워버릴수 있고 여러프로그램이 한 장치에 기록될수도 있다. 이중 모드를 지원함으로서 운영체제에게 더 많은 보호를 제공한다.
  프로그램이 무한 루프에 빠지거나 서비스 호출하지 않아서 제어가 운영체제로 복귀하지 않는 경우를 위해 타이머를 사용한다. 타이머는 지정된 시간 후 컴퓨터를 인터럽트하도록 설정 할 수 있다. 타이머가 인터럽트를 발생시키면 제어는 자동적으로 운영체제로 넘어간다.

 9.
  프로세스을 실행하기 위해서는 여러가지 자원(하드웨어와 데이터 등)을 필요로한다. 한 프로세스 실행은 반드시 순차적이어야 하고 CPU는 프로세스가 끝날때 까지 명령들을 차례대로 실행한다. 프로세스는 시스템 내 작업의 단위이다. 시스템은 프로세스의 집합으로 구성되며 이에 따라 운영체제는 적절한 프로세스 관리가 필요로한다.

 10.
  CPU 이용률과 사용자가 느끼는 컴퓨터의 응답 속도를 개선하기 위해 메모리에 여러 개의 프로그램을 유지 해야하며 이를 위해선 메모리 관리 기법이 필요한다. 이는 시스템의 하드웨어 설계에 좌우된다. 각 알고리즘은 자신만을 위한 하드웨어 자원을 필요로한다.

 11.
  운영체제는 저장장치의 물리적 특성을 추상화시켜 논리적인 저장단위인 파일을 정의한다. 파일관리는 운영체제 구성요소 중 하나이다. 파일은 파일 생성자에 의해 정의된 정보 집합체이다. 주 메모리에 모든 데이터와 프로그램을 수용하기에는 용량이 너무 작고 휘발성인 특징(전력공급이 차단되면 데이터가 사라진다.) 때문에 대용량 저장장치로 보조 저장장치를 사용한다. 운영체제는 이에대한 적절한 관리를 해야한다.

 12.
  운영체제의 목적 중의 하나는 사용자에게 특정 하드웨어 장치의 특성을 숨긴 것이다. 오직 하드웨어 드라이버만이 지정된 장치의 특성을 알고있다. 운영체제 장치를 관리하며 데이터를 전송하며 입출력 완료를 수행해야한다.

 13. 이하 생략
  보호와 보안, 분산시스템, 전용 시스템, 계산환경, 오픈소스 운영체제
  (위와 관련된 설명은 운영체제의 서론에서 소개하지 않고 다음에 필요할시에 다룹니다.

 

본 내용은 Operating System Comcepts 8th Edition을 기반으로 서술되었습니다.

'Computing > Operating System' 카테고리의 다른 글

Race condition. 경쟁 상태  (0) 2021.10.13
Cache line.  (0) 2021.10.13
Architecture, Blueprint  (0) 2021.10.13
Operating System 2  (0) 2015.04.12
Operating System 0  (0) 2015.04.12