[운영체제] 운영체제의 개요

su_y2on·2022년 9월 8일
0

CS

목록 보기
1/9
post-thumbnail

1일차 : 운영체제의 개요

운영체제 개요


운영체제

운영체제는 응용프로그램과 하드웨어 중간에 위치하는 개체로 중간에서 여러가지 일을 해준다. 운영체제가 필요한 이유는 응용프로그램에서 이런 하드웨어에 직접 접근하기에는 복잡하고 또 여러가지 문제가 생길 수 있기 때문에 중간에서 OS개체가 그것을 관리해준다.




운영체제의 역할

OS는 여러가지 역할들을 크게 아래와 같은 역할을 수행한다.

  • 여러 SW/HW 자원을 관리해준다
  • 프로세스와 스레드를 관리해준다
  • 시스템을 보호해준다
    ..



운영체제의 작업수행방식

OS는 작업수행방식에 따라서 구분할 수 있다. 이는 역사적으로 흐름 가지고 있는데 이 흐름대로 보면 좋다.

순차처리

이때는 OS의 개념이 존재하지 않았다. 사용자가 직접 기계어로 프로그램을 작성했다. 이 시기에 문제는 작업을 수행하기전 해당 작업에 맞는 세팅시간이 필요했다. 즉 서로 다른 종류의 작업들을 처리하다보면 중간중간 세팅시간들이 들어가 작업처리에 효율이 낮아진다는 것이다.

Batch System

그래서 나온 것이 Batch System이다. 모든 시스템들이 중앙에서 관리되고 운영된다. 그리고 비슷한 작업끼리 모아서 한번에 처리하게 되었다. 이렇게하면 불필요한 세팅시간을 줄일 수 있다. Batch

System은 시스템 지향적인 방식이다. 시스템 입장에서 최적의 방식이라는 것이다. 따라서 처리효율이 높다. 하지만 같은 작업들을 모이기를 기다려야하기 때문에 생산성은 떨어지고 응답시간이 긴 단점이 있다.

time sharing system

그래서 응답시간에 대한 문제를 해결하기 위해 여러 사용자가 시간을 쪼개서 자원을 동시에 사용하는 방식이 등장했다. 따라서 OS는 파일시스템과 가상메모리를 관리하기 시작했다. 이 방식은 사용자 지향적이기 때문에 대화형시스템에 적합하고 응답시간이 단축과 생산성향상이라는 장점을 가진다

하지만 그만큼 구조가 복잡해졌기 때문에 통신비용이 증가되었고 동시 사용자수가 많아지면 개인 사용자가 느끼는 체감속도가 저하될 수 있다.

Personal Computing

따라서 자원을 나눠쓰는 것이 아닌 개인이 자원을 독점하는 방식이 등장한다. 여기서는 CPU활용률이 고려대상이 아니다. 또한 OS도 상대적으로 단순해졌다. 장점은 빠른 응답시간이고 단점은 개개인이 자원을 독점하는 만큼 좋은 성능의 장비를 쓸 수 없기 때문에 성능이 낮아진다는 것이다.

Parallel Processing System

그 뒤로 단일 시스템에서 여러개의 프로세서가 사용가능한 방식이 등장한다. 따라서 OS는 여러 프로세서가 공유하는 자원을 관리해주는 것이 중요해졌다. 이런 구조의 장점은 성능이 향상되었다는 것과 하나의 프로세서가 고장나도 다른 것들을 돌릴 수 있기 때문에 신뢰성이 증가한 것이다.

Distributed Processing System

위에 병렬프로세싱 시스템은 프로세서끼리 자원을 공유해 강하게 결합되어있는 형태라면 네트워크를 기반으로 느슨하게 연결된 병렬처리 시스템이 등장했다. 물리적으로는 분산이 되어있고 통신망을 통해서 연결이 된다. 따라서 사용자는 마치 하나의 프로그램처럼 사용가능하다.

장점으로는 높은 성능과 신뢰성 그리고 확장성이 있다. 단점은 구축하고 관리가 어렵다는 것이다.

Real-time System

마지막으로 작업시간에 제한을 갖는 시스템이다. 이 방식에서 가장 중요한 것은 데드라인을 지키는 것이다. 스트리밍같은 작업들이 여기에 적합하다




운영체제의 구조

운영체제는 크게 인터페이스와 커널로 나뉜다.

인터페이스

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

커널

OS의 핵심 부분이다. 따라서 가장 빈번하게 사용되는 기능을 담당하고 항상 메모리에 상주해있다.

  • 시스템호출 : 사용자가 직접 컴퓨터자원에 접근하는 것을 막기위한 인터페이스이다. 시스템호출을 통해 사용자는 OS에 요청을 전달할 수 있다.

  • 드라이버 : 커널과 디바이스간에 인터페이스이며 연결해주는 부분이라고 보면 된다. 간단한 디바이스는 커널이 드라이버를 가지고 있지만 복잡한 디바이스같은 경우 제작자가 드라이버를 제공한다.




운영체제의 여러가지 구조들

단일 구조


하나의 커널에 모든 것을 다 넣어놓은 구조이며 커널내에서 직접통신을 할 수 있어서 효율적이지만 커널이 거대화 되면 유지보수의 어려움이 있다.

계층 구조


따라서 등장한 것이 커널영역을 모듈화하여 계층적으로 관리하는 것이다. 이 구조는 설계와 구현이 단순화된 장점이 있지만 하나의 기능을 수행할 때 여러 계층을 거쳐야하기 때문에 성능이 떨어진다.

마이크로커널 구조


커널의 크기를 최소화하는 구조로 필수기능을 제외한 기능은 사용자 영역에서 수행가능하도록 하는 것이다. 이렇게하면 커널이 개입하는 기능들이 적어져서 효율이 높아진다.

0개의 댓글