본문 바로가기
스터디/운영체제

[운영체제] Chapter 1. 서론

by 알 수 없는 사용자 2020. 6. 14.

운영체제(Operating system)은 컴퓨터 하드웨어를 관리하는 프로그램으로

응용 프로그램을 위한 기능을 제공하며, 사용자와 하드웨어 사이의 중재자 역할을 담당합니다.

 

1. 운영체제가 할 일

컴퓨터 시스템은 하드웨어, 운영체제, 응용프로그램, 사용자로 네 가지 구성요소이다.

  • 하드웨어는 중앙 처리 장치(CPU), 메모리, 입출력(I/O) 장치로 구성되며, 기본 계산용 자원을 제공한다.
  • 응용프로그램은 워드 프로세서, 스프레드시트, 컴파일러, 그리고 웹 브라우저 등과 같이 사용자의 계산 문제를 해결하기 위해 이들 자원이 어떻게 사용될지를 정의한다.
  • 운영체제는 다양한 사용자를 위해 응용프로그램과 하드웨어간의 사용을 제어하고 조정한다.

 

사용자 관점(User View)

 

컴퓨터에 대한 사용자의 관점은 인터페이스에 따라 달라진다.

대부분의 컴퓨터 사용자는 모니터, 키보드, 마우스 및 시스템 장치로 구성된 PC 앞에서 작업을 한다.

이런 경우, 운영체제는 대부분의 사용의 편이성을 위해 설계되고, 자원의 이용에 대한 성능은 떨어진다.

 

하지만 대형 컴퓨터미니 컴퓨터에 연결된 터미널을 사용하는 경우도 있다.

이 경우에는 한 컴퓨터를 여러 사용자들이 자원을 공유하도록 진행된다. 자원 이용을 극대화하도록 설계되어있어 가용 CPU 시간, 메모리 및 입출력이 효율적이다.

 

또 다른 경우, 워크스테이션 서버로 구성된 경우에는, 마음대로 자원을 사용할 수 있으며 네트워킹과 파일, 계산 및 프린터 서버도 공유한다. 그래서 운영체제는 사용 편이성자원 이용 간의 적절한 조화를 이루도록 설계된다.

 

스마트폰과 태블릿같은 휴대용 컴퓨터의 경우, 독립형 장치이기에 사용자 인터페이스를 고려한 운영체제를 제공한다.

또한 일부 컴퓨터는 사용자 관점이 존재하지 않거나 매우 적은 경우도 있다. 가전제품, 자동차 내의 내장형 컴퓨터와 같은 경우이다.

 

시스템 관점(System View)

 

컴퓨터 관점으로는 운영체제가 하드웨어와 가장 밀접하게 연관된 프로그램이다.

따라서 운영체제를 자원 할당자(resource allocator)로 본다. CPU의 시간, 메모리 공간, 파일 저장 공간, 입출력 장치 등을 관리하며, 특정 프로그램과 사용자에게 필요한 자원을 할당한다. 이때 컴퓨터 시스템을 효율적으로 공정하게 운영할 수 있도록 결정한다.

 

그리고 운영체제에게 바라는 점은 여러가지 입출력 장치와 사용자 프로그램을 제어 할 필요성을 강조한다.

운영체제는 제어 프로그램(control program)이기에 오류와 컴퓨터의 부적절한 사용을 방지하기 위해 사용자 프로그램의 실행을 제어하고 입출력 장치의 연산과 제어에 관여한다.

 

운영체제의 정의

 

1960년대의 무어의 법칙(Moore's Law)으로 컴퓨터 기능이 점점 확대되고 크기가 작아졌으며 용도가 다양지며 다양한 운영체제가 등장했다.

운영체제에 대한 완벽한 정의는 없지만 쓸모 있는 컴퓨터 시스템을 만드는 과정에서 발생하는 문제점을 해결하기 위한 적절한 방법을 제공하기에 존재하는 것뿐이다. 컴퓨터 시스템의 근본 목적은 사용자 프로그램을 실행하고, 사용자의 문제를 보다 쉽게 해결해 주는 것이다. 이러한 목적으로 컴퓨터 하드웨어가 제작되고 응용 프로그램이 개발되었다.

 

다양한 프로그램들은 입출력 장치의 제어와 같은 공통적인 연산을 필요로 하기에, 여기에서 자원을 제어하고 할당하는 공통 기능을 하나의 소프트웨어로 통합한 것이 운영체제이다.

무어의 법칙 : 집적회로의 성능이 24개월마다 2배로 증가한다는 법칙 (삼성이 깨버림. 황의 법칙이 등장함.)

일반적인 정의에 따르면 운영체제는 컴퓨터에서 항상 실행되는 하나의 프로그램으로 커널(kernel)이라 불린다.

시스템 프로그램(system programs)는 운영체제와 관련이 잇으나 반드시 커널에 포함될 필요는 없는 프로그램이고, 응용프로그램(application programs)은 시스템의 작동과 관계없는 모든 프로그램을 포함한다.

 

2. 컴퓨터 시스템의 구성

컴퓨터 시스템 연산(Computer-System Operation)

 

컴퓨터 시스템은 하나 이상의 CPU와 다수의 장치 제어들로 구성되며 이들은 공용 버스로 연결된다.

CPU와 장치 제어기들은 이 버스를 통해 공유 메모리에 접근한다. 장치 제어기는 디스크 드라이브, 오디오 장치와 같은 특정 장치를 관리한다. CPU와 장치 제어기는 메모리 사이클을 얻기 위해 경쟁하며 병렬 실행될 수 있다. 공유 메모리에 대한 질서 있는 접근을 보장하기 위해 메모리 제어기가 메모리 접근을 동기화 시킨다.

 

컴퓨터를 구동하기 위해서 초기 프로그램을 가지고 있어야 한다.

초기 프로그램(부트스트랩 프로그램, bootstrap program)은 컴퓨터 내 읽기 전용 메모리(ROM, Read-Only Memory)나 EEPROM에 저장되는 펌웨어라고 알려져 있다. 이것은 CPU 레지스터를 시작으로 장치 제어기, 메모리 내용 등을 포함한 시스템의 모든 측면을 초기화한다. 또한 부트스트랩 프로그램은 운영체제를 적제하는 방법 및 실행을 시작하는 방법을 알고 있고 운영체제 커널을 찾아 메모리에 적제한다.

 

커널이 적재되고 실행되면 시스템과 사용자에게 서비스를 제공할 수 있다.

일부 서비스는 커널이 아닌 시스템 프로그램에 의해 제공되며 부트 시에 메모리에 적재되어 커널이 실행되는 동안 살아있는 시스템 프로세스시스템 데몬이 된다. UNIX에서는 첫 시스템 프로세스가 'init'이며, init이 다른 많은 데몬을 시작한다. 이단계가 끝나면 시스템이 완전히 부트되며 시스템은 사건(event)이 발생하기를 기다린다.

 

사건의 발생 여부는 하드웨어나 또는 소프트웨어로부터 발생한 인터럽트(interrupt)에 의해 전달 받는다.

하드웨어는 시스템 버스를 통해 CPU에 신호를 보내 인터럽트를 발생하고, 소프트웨어는 시스템 호출(system call)이라는 연산을 실행하여 인터럽트를 발생한다.

 

CPU가 인터럽트 되면, CPU는 하던 일을 중단하고 즉시 지정된 위치로 실행 위치를 옮긴다.

이 지정된 위치에는 일반적으로 인터럽트를 처리하기로 되어 있는 서비스 루틴의 시작 주소가 기록되어 있다.

인터럽트 서비스 루틴이 실행되고 실행이 완료되면 CPU는 인터럽트 되었던 연산을 재개한다. 

 

인터럽트는 컴퓨터 구조의 중요한 부분이다. 각 컴퓨터 설계는 자신의 인터럽트 기법을 가지고 있으며 몇 가지 기능은 공통적입니다. 인터럽트는 적절한 서비스 루틴으로 제어를 전달해야 한다. 이런 전달은 총괄 루틴을 호출하여 인터럽트에 관한 정보를 조사한다. 이러한 방식 대신에 사용 가능한 인터럽트의 개수가 미리 정해져 있기 때문에 인터럽트 핸들러의 주소를 저장한 테이블을 이용하여 간접적으로 호출하면 원하는 처리 속도를 제공할 수 있다. 일반적으로 포인터 테이블은 하위 메모리에 저장된다. 

 

인터럽트 벡터는 인터럽트가 요청되면 저장되는 인터럽트 주소의 배열로 고유한 장치 번호가 색인되어 주소 값을 얻는다. Window나 UNIX가 이런 구조로 인터럽트를 처리한다. 그리고 인터럽트에 의해 중단된 명령의 주소도 반드시 저장해야 한다. 

 

저장장치 구조(Storage Structure)

 

CPU는 명령어를 오로지 메모리에서만 가져올 수 있으므로 프로그램을 실행하려면 프로그램이 반드시 메모리에 있어야 합니다. 메인 메모리(Random-Access Memory, RAM)이라 불리는 재기록 가능한 메모리에서 가져온다.

메인 메모리는 DRAM(Dynamic Random-Access Memory)라는 반도체 기술로 구현된다.

 

컴퓨터는 다른 형태의 메모리도 사용합니다.

 

 

입출력 구조(I/O Structure)

 

 

3. 컴퓨터 시스템 구조

 

 

4. 운영체제의 구조

 

 

5. 운영체제 연산

 

 

6. 프로세스 관리

 

 

7. 메모리 관리

 

 

8. 저장장치 관리

 

 

9. 보호와 보안

 

 

10. 커널 자료 구조

 

 

11. 계산 환경

 

 

12. 오픈소스 운영체제

 

 

13. 요약

 

 

'스터디 > 운영체제' 카테고리의 다른 글

[운영체제] Init.  (0) 2020.06.13