티스토리 뷰

 

 

 

운영체제(OS; Operating System)란

 

컴퓨터 시스템은 대개 네 가지 구성요소인 하드웨어, 운영체제, 응용 프로그램 및 사용자로 구분할 수 있다. 하드웨어는 중앙 처리장치(CPU), 메모리 및 입출력(I/O) 장치로 구성되어, 기본 계산용 자원을 제공한다. 응용 프로그램인 워드 프로세서, 스프레드시트, 컴파일러, 웹 브라우저 등은 사용자의 계산 문제를 해결하기 위해 이들 자원이 어떻게 사용될지를 정의한다. 

 

운영체제는 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정한다.  즉, 하드웨어를 관리하고 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다. 

 

운영체제의 종류로는, Windows, Linux, UNIX, MS-DOS 등이 있다.

 

운영체제 역할 

1. 자원(System Resource)의 효율적 관리 

    - 시스템 자원이란 CPU, Memory, I/O 장치와 같은 하드웨어 자원프로세스, 파일 메시지 등의 소프트웨어 자원을 의미한다.

   - 운영체제는 컴퓨터 시스템 자원의 효율적인 관리를 위하여 적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회

       수하여 여러 응용 프로그램이 사용할 수 있게 해준다. 

    

2. 자원 보호 

     - 프로그램이나 다른 사용자가 데이터를 삭제하거나 중요 파일에 접근하지 못하게 컴퓨터 자원들을 보호한다.

 

3. 하드웨어 인터페이스 제공(드라이버)

     - 하드웨어 인터페이스가 자동으로 설치되게 함으로써 하드웨어 종류에 상관없이 사용할 수 있도록 한다.

 

4. 사용자 인터페이스 제공(CLI, GUI)

    - 사용자 인터페이스는 사용자가 운영체제를 편리하게 사용하도록 지원하기 위한 것이다.  

 

운영체제 목표

운영체제의 기능

 

자원 관리

1. 메모리 관리

1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리한다. 즉, 메모리 할당과 회수 관리를 운영체제가 담당한다. 

 

2. 프로세스 관리

프로세스는 실행중인 프로그램으로 운영체제는 프로세스의 생성부터 실행, 종료까지의 전 과정에 관여한다.

 

3. 입출력 장치 관리

운영체제는 특수 장치 드라이브를 사용하여 입출력 장치와 상호작용한다. 따라서 장치 드라이버를 제공하여 특정 하드웨어와 서로 통신할 수 있는 인터페이스를 제공한다. 

 

4. 파일 관리

운영체제는 파일의 생성과 삭제, 변경, 유지 등의 관리를 담당한다.

 

시스템 관리

1. 시스템 보호

시스템 보호는 컴퓨터 자원을 보호하는 기능이다. 응용프로그램, 사용자로부터 자원을 보호하기 위해 권한을 보여하기도 하고 데이터를 암호화하기도 한다. 또한 프로세스들은 동시에 실행되면서 서로의 데이터에 접근하지 못하도록 보호하기도 한다.

 

2. 네트워크

프로세서가 통신을 할 때는 경로 설정, 접속 정책, 충돌, 보안 등을 고려해야 하는데 이를 운영체제가 관리해준다. 

 

3. 명령 해석기

사용자나 응용 프로그램으로부터 대화형의 명령어가 들어오면 이를 운영체제에 전달하는 인터페이스이다.

 

커널과 인터페이스

운영체제는 커널인터페이스로 이루어져 있다. 

 

https://ardor-dev.tistory.com/22?category=507714

1. 커널(Kernel):

컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 통제한다. 프로세스 관리, 메모리 관리, 저장 장치 관리와 같은 운영체제의 핵심적인 기능을 모아 놓은 것으로 운영체제의 성능을 좌우한다. 

 

2. 인터페이스(Interface):

사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 한다. 

 

✔ 운영체제는 커널과 인터페이스를 분리하여 같은 커널을 사용하더라도 다른 인터페이스를 가질 수 있다. 

 

시스템 호출(System call) 과 디바이스 드라이버(Device Driver)

1. 시스템 호출

커널이 자신을 보호하기 위해 만든 인터페이스이며 사용자나 프로그램이 직접 컴퓨터 자원에 접근하는 것을 막는다. 그러므로 사용자나 응용 프로그램이 컴퓨터 자원을 사용하기 위해서는 시스템 호출을 사용하야 한다. 보통은 함수의 형태로 제공된다.

 

2. 드라이버

커널과 하드웨어의 인터페이스를 담당한다. 컴퓨터 하드웨어의 종류는 다양하다. 이때 운영체제가 각 하드웨어에 맞는 인터페이스를 개발하기에는 어려우므로 하드웨어 제작자가 만든 소프트웨어를 받아서 설치하여 하드웨어를 사용할 수 있게 한다. 이 소프트웨어를 디바이스 드라이버라고 한다.

 

커널이 하는 일(= 운영체제의 기능)

 

 

커널모드(Kernel mode, system mode) 와 사용자 모드(User mode)

 

하드웨어 적인 보안을 유지하기 위해 운영체제는 기본적으로 커널 모드사용자 모드를 제공한다. 커널 모드는 운영체제가 CPU의 제어권을 가지고 운영 체제 코드를 실행하는 모드로서, 이 모드에서는 모든 종류의 명령을 다 실행할 수 있다. 반면, 사용자 모드에서는 일반 사용자 프로그램이 실행되며 제한적인 명령만을 사용할 수 있다. 시스템에 중요한 영향을 미치는 연산은 커널 모드에서만 실행 가능하도록 함으로써 하드웨어의 보안을 유지한다.

 

커널 모드와 사용자 모드를 구분하기 위해 하드웨어 적으로 CPU 내부에 모드 비트(Mode bit)를 사용한다. 모드 비트가 0으로 세팅되어 있으면 커널 모드로서 모든 명령을 수행할 수 있고, 모드 비트가 1로 세팅 되어 있으면 사용자 모드로서 제한된 명령만을 수행할 수 있다. 따라서 CPU는 보안과 관련된 명령을 수행하기 전에는 항상 모드 비트를 조사해 모든 비트가 0으로 세팅 된 경우에만 그 명령을 수행하게 된다.

 

프로세스는 두 모드 중 하나의 모드만을 가지는 것이 아니라 실행되는 동안 수 없이 사용자 모드와 커널 모드를 반복하면서 실행된다. 예를 들어, 프로세스가 사용자 모드에서 작업을 수행하다가 하드웨어 접근 등 보안에 필요한 중요한 명령을 수행해야 할 경우에는 시스템 콜(Software interrupt)을 통해 운영체제에게 서비스를 대신해 줄 것을 요청하게 된다. 그러면 CPU의 제어권은 다시 운영체제로 넘어가게 된다. 인터럽트가 발생할 때에는 모든 비트가 자동적으로 0으로 세팅 되어 필요한 작업을 수행하고 요청된 작업이 끝나게 되면 모든 비트는 다시 1로 만들어 사용자 프로그램에게 CPU를 넘겨주게 된다. 

 

 

User mode -> kernel mode -> user mode

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함