(새 문서: 분류:운영체제 == 개요 == 오퍼레이팅 시스템(Operating System, 약칭:OS)은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 한다. 운영 체제는 실행되는 응용 프...)
 
편집 요약 없음
 
2번째 줄: 2번째 줄:


== 개요 ==
== 개요 ==
오퍼레이팅 시스템(Operating System, 약칭:OS)은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 한다. 운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치, Network, Disks 등의 자원들을 공평하게 그리고 효과적으로 사용할 있도록 만들어 주고, 이들을 추상화하여 파일 시스템 등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 낸다. 운영체제는 user와 HW의 중재자 역활을 한다.  
운영체제는 시스템의 하드웨어와 프로그램을 관리하는 관리 프로그램이다. 운영체제에 대한 정의는 다양하며, 쉽게 정의할 없을 정도로 많은 종류의 운영체제가 있지만, 운영체제의 기본적인 역활은 불변한다. 많은 정의들은 운영체제를 다음과 같이 정의한다.


==운영체제의 구성 요소 ==
운영체제는 시스템 하드웨어와 응용 소프트웨어를 관리하는 플랫폼 레벨의 소프트웨어이다.
# [[커널]]


==운영체제의 핵심 역활==
운영체제의 핵심적인 역활은 다음과 같다.
# 추상화 (Abstraction): 제일 중요한 운영체제의 핵심 역활로서, 복잡한 하드웨어를 추상화를 통해서 간단한 API혹은 Interface로 사용자에게 제공한다.
# 분리 (Isolation): 운영체제는 Isolation을 통해서 서로 다른 사용자가 같은 하드웨어를 사용하더라도, 혹은 서로 다른 프로그램이 같은 하드웨어를 사용하더라도 서로에 대한 Isolation을 제공함을써, 안전하게 사용할 수 있도록 한다.
# 보호 (Protection): 운영체제는 스스로를 악성 프로그램으로부터 보호한다.
# 동시성 (Concurrency): 운영체제는 복수의 프로그램을 동시에 실행시켜서 마치 그들이 동시에 수행되는 것처럼 보이게 한다.
 
많은 운영체제들은 위의 4가지 특성을 한번에 지니고 있지만, 필수적인 것은 아니다. 예를 들어서 DOS와 같은 경우에는 모든 프로그램이 운영체제와 같은 Isolation-level에서 실행됨으로, Isolation, Protection, Concurrency를 제공하지 않는다. 그러나 현대의 대부분의 Modern OS들은 위의 4가지 기능을 제공한다. 
 
최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 한다. 운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치, Network, Disks 등의 자원들을 공평하게 그리고 효과적으로 사용할 수 있도록 만들어 주고, 이들을 추상화하여 파일 시스템 등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 낸다.
 
==운영체제 시스템 스택==
# [[Process Management]]
# [[Process Management]]
# [[Memory Management]]
# [[Memory Management]]
15번째 줄: 24번째 줄:
# [[Security]]
# [[Security]]
# [[UI]]
# [[UI]]
== 구현 ==
속도가 중요한 부분에서는 Assembly 언어와, C를 이요하여, 그외의 부분에서는 C++이나 요즘에는 shell scripts (Python)을 이용하기도 한다.
== 운영체제 종류 ==
일반적인 목적의 운영체제는 매우 큰 프로그램이다. 따라서, OS는 매우 많은 모듈로 이루어져있다. 요즘나오는 많은 운영체제는 읽어들일수 있는 커널들로 이루어져 있다. 아주 중심이 되는 커널이 있고, 모듈들은 커널이 필요로 할때만 읽어들여진다. 예를들어 파일시스템은 계속 붙어있지만, 사용하지 않는 장치의 드라이버는 커널에 합쳐져 있지 않은 상태로 있다. 또한 아래에 나오는 구조들을 적당히 합친 Hybrid System을 구현하여 작동한다.
=== Simple Structure ===
[[파일:MSDOS.png|가운데|300픽셀]]
MS DOS는 모든레이어에서 운영체제에 접근할 수 있다. MS DOS의 커널은 통짜로 짜여진 코드에서 모든일을 처리했다.
=== Non Simple Structure (UNIX) Monolitic===
유닉스는 시스템 프로그램과 [[커널]]로 나누어질 수 있다.
[[파일:유닉스 시스템.png|가운데|300픽셀]]
도스에 비하면 굉장히 세분화 되어있고, 나누어져 있지만, 요즘 운영체제와 다르게 상당히 통합되어 있다.
=== Layered Approach ===
[[파일:레이어 시스템.png|가운데|300픽셀]]
운영체제게 여러개의 레이어로 나누어져 있고, 레이어 사이의 통신만이 이루어지는 구조를 말한다. 이 구조는 운영체제 구조에 관한 컨셉이다.
=== Microkernel System Structure ===
[[파일:마이크로커널 시스템.png|가운데|300픽셀]]
유닉스의 커널의 많은 부분을 사용자로 옮겨놓은 것이다. 이러한 사용자 프로그램의 통신은 message passing으로 구현되어 있다. 확장하기 쉬우며, 신뢰성이 높고, 안전하다는 장점이 있다. 그러나 모노리틱커널에 비하면 메시지를 전달하는 오버헤드로 인하여, 속도가 느리다.
== 잘 알려진 운영체제들 ==
#[[MS DOS]]
#[[Windows]]
#[[Linux]]
#[[UNIX]]
#[[MAC OS]]
#[[IOS]]
#[[Android]]

2024년 5월 22일 (수) 07:21 기준 최신판


개요

운영체제는 시스템의 하드웨어와 프로그램을 관리하는 관리 프로그램이다. 운영체제에 대한 정의는 다양하며, 쉽게 정의할 수 없을 정도로 많은 종류의 운영체제가 있지만, 운영체제의 기본적인 역활은 불변한다. 많은 정의들은 운영체제를 다음과 같이 정의한다.

운영체제는 시스템 하드웨어와 응용 소프트웨어를 관리하는 플랫폼 레벨의 소프트웨어이다.

운영체제의 핵심적인 역활은 다음과 같다.

  1. 추상화 (Abstraction): 제일 중요한 운영체제의 핵심 역활로서, 복잡한 하드웨어를 추상화를 통해서 간단한 API혹은 Interface로 사용자에게 제공한다.
  2. 분리 (Isolation): 운영체제는 Isolation을 통해서 서로 다른 사용자가 같은 하드웨어를 사용하더라도, 혹은 서로 다른 프로그램이 같은 하드웨어를 사용하더라도 서로에 대한 Isolation을 제공함을써, 안전하게 사용할 수 있도록 한다.
  3. 보호 (Protection): 운영체제는 스스로를 악성 프로그램으로부터 보호한다.
  4. 동시성 (Concurrency): 운영체제는 복수의 프로그램을 동시에 실행시켜서 마치 그들이 동시에 수행되는 것처럼 보이게 한다.

많은 운영체제들은 위의 4가지 특성을 한번에 지니고 있지만, 필수적인 것은 아니다. 예를 들어서 DOS와 같은 경우에는 모든 프로그램이 운영체제와 같은 Isolation-level에서 실행됨으로, Isolation, Protection, Concurrency를 제공하지 않는다. 그러나 현대의 대부분의 Modern OS들은 위의 4가지 기능을 제공한다.

최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 한다. 운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치, Network, Disks 등의 자원들을 공평하게 그리고 효과적으로 사용할 수 있도록 만들어 주고, 이들을 추상화하여 파일 시스템 등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 낸다.

운영체제 시스템 스택

  1. Process Management
  2. Memory Management
  3. Disk and file system
  4. Device dirver
  5. Networking
  6. Security
  7. UI