운영체제

이연희·2022년 5월 4일
0

OS

목록 보기
5/10

운영체제

OS(Operating System)라고 하는 운영체제는 일반 컴퓨터나 노트북의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어이다. 운영체제는 사용자에게 편리한 인터페이스를 제공하고 컴퓨터의 자원을 효율적으로 관리하는 소프트웨어이다.
1. 개인용 컴퓨터: 윈도우, Mac OS
2. 대형 컴퓨터: 유닉스(Unix), 리눅스(Linux)
3. 모바일: 애플의 iOS, 구글의 안드로이드(Android)

  • 이외의 MP3, 내비게이션, 스마트 시계 등 CPU 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 임베디드 또는 임베디드 시스템이라 한다.

필요성

  1. 컴퓨터 사용 규칙 설정
  2. 성능 향상
  3. 자원 관리

💡 운영체제는 각자의 응용프로그램이 활동할 수 있는 환경을 제공하고, 응용프로그램이 필요로 하는 컴퓨터 자원을 나누어주며, 응용 프로그램으로부터 컴퓨터 자원을 보호하는 강력한 '통치자' 역할을 한다.

역할

  1. 자원 관리
    자원을 응용 프로그램에게 나누어 준다. 자원을 요청한 프로그램이 여러 개라면 적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회수하여 다른 응용 프로그램에게 나누어준다.

  2. 자원 보호
    악의적인 사용자나 미숙한 사용자로부터 자원을 보호한다.

  3. 하드웨어 인터페이스 제공
    CPU, 메모리, 키보드, 마우스와 같은 다양한 하드웨어를 일관된 방법으로 사용할 수 있도록 지원하기 때문에 어떤 회사에서 만든 하드웨어인지 신경 쓸 필요가 없다. 운영체제는 하드웨어 인터페이스가 자동으로 설치되게 함으로써 하드웨어 종류에 상관없이 사용할 수 있게 해준다.

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

목표

  1. 효율성
    효율성은 운영체제의 역할 중 '자원 관리'와 연관되는 것으로, 같은 자원을 관리하더라도 효율적으로 관리해야 한다는 의미이다. 일반적으로 운영체제의 크기를 최소화하고 운영체제가 사용하는 코드를 최적화해야 한다.

  2. 안정성
    안정성은 운영체제의 역할 중 '자원 보호'와 연관된다. 운영체제가 안정적이려면 사용자와 응용 프로그램의 안전 문제와 하드웨어적인 보안 문제를 처리할 수 있어야 하며, 시스템에 문제가 발생했을 때 이전으로 복구하는 결함 포용(fault tolerant) 기능을 수행해야 한다.

  3. 확장성
    확장성은 운영체제의 역할 중 '하드웨어 인터페이스 제공'과 연관되는 것이다. 운영체제는 하드웨어의 종류에 상관없이 꽂으면 바로 실행할 수 있는 플러그 앤드 플레이(plug & play) 기능을 제공해야 한다.

  4. 편리성
    편리성은 운영체제의 역할 중 '사용자 인터페이스 제공'과 연관되는 것이다. 응용프로그램과 사용자에게 다양한 편리성을 제공하면서도 자원의 낭비 요소를 막아야한다.

구조

  1. 커널과 인터페이스
  • 커널(kernel)은 프로세스 관리, 메모리 관리, 저장장치 관리 같은 운영체제의 핵심 기능을 모아놓은 것이다.
  • 인터페이스는 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 한다.
  1. 시스템 호출과 디바이스 드라이버
  • 시스템 호출(system call)은 커널이 자신을 보호하기 위해 만든 인터페이스이다. 응용 프로그램과 커널의 인터페이스를 담당한다. 커널은 사용자나 응용 프로그램으로부터 컴퓨터 자원을 보호하기 위해 직접 접근을 차단하기 때문에, 자원을 이용하려면 시스템 호출 인터페이스를 이용해야 한다.
  • 디바이스 드라이버는 커널과 하드웨어의 인터페이스를 담당한다. 커널이 제공하는 드라이버가 있고, 하드웨어 제작자가 제공하는 드라이버도 있다. 이는 하드웨어는 커널과 직접 연결되기도 하고 하드웨어 제작자가 제공하는 드라이버를 통해 연결되기도 한다는 뜻이다.

커널의 구성

커널의 역할: 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리, 프로세스 간 통신 관리

1. 단일형 구조 커널(monolithic architecture kernel)

: 초창기 운영체제의 구조

🔻 장점

  • 모듈이 거의 분리되지 않아서 모듈 간 통신 비용이 줄어든다.

🔻 단점

  • 모든 모듈이 하나로 묶여 있기 때문에 버그나 오류 처리가 어렵다.
  • 상호 의존성이 높아서 작은 결함이 시스템 전체로 확산 가능하다.
  • 이식성이 낮다.

2. 계층형 구조 커널(layered architecture kernel)

: 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층 간 통신

🔻 장점

  • 단일형 구조보다 버그나 오류를 쉽게 처리할 수 있다.
  • 오류가 발생하면 해당 계층만 수정하면 되기 때문에 디버깅이 쉽다.

3. 마이크로 구조 커널(micro architectuer kernel)

: 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공한다. 운영체제의 많은 부분이 사용자 영역에 구현되어 있다. 대표적인 운영체제 마하(Mach)는 애플의 PC 운영체제인 OS X와 모바일 운영체제 iOS의 커널로 사용된다.

🔻 장점

  • 마이크로 구조에서 각 모듈은 독립적으로 작동하기 때문에 하나의 모듈이 실패하더라도 전체가 멈추지 않는다.
  • 이식하기 쉽고 커널이 가벼워 CPU 용량이 작은 시스템에도 적용이 가능하다.

가상머신

운영체제 위에 가상머신을 만들고 그 위에서 응용프로그램이 작동하게 하여 서로 다른 운영체제간 호환성을 높힐 수 있다.

profile
공부기록

0개의 댓글