STUDY LOG/Operating Systems

운영 체제란?

Jinwang Mok 2022. 7. 4. 15:09

*본 강의는 KOCW에서 이화여대 반효경 교수님의 2014년도 1학기 공개 강의를 공부하며 요약 및 정리한 내용입니다.

운영 체제란?

운영체제란 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층을 의미한다.

전문적이고 좁은 의미의 운영체제는 핵심부분인 커널(kernel)을 의미하나 넓은 의미로는 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념을 의미한다.

 

운영 체제의 목적

운영체제의 가장 중요한 목적은 컴퓨터 시스템의 자원을 효율적으로 관리하는 것이다. 

또한, 컴퓨터 시스템을 보다 편리하게 사용할 수 있는 환경을 제공하는 목적도 가지고 있다.

 

운영 체제의 분류

동시 작업 가능 여부에 따라 분류하면 단일 작업(single tasking)과 다중 작업(multi tasking)으로 구분할 수 있다.

  • 단일 작업은 한 번에 하나의 작업만 처리한다. 이는 웹 서핑을 하면서 엑셀작업을 할 수는 없다는 것을 의미한다.
  • 이와 달리 다중 작업은 동시에 두 개 이상의 작업을 처리하는데 최근 운영 체제는 우리가 알다시피 다중 작업을 지원한다.

사용자의 수에 따라 분류하면 단일 사용자(single user)와 다중 사용자(multi user)로 구분할 수 있다.

마지막으로 처리 방식에 따라 분류하면 일괄 처리(batch processing), 시분할(time sharing), 실시간(realtime)으로 구분할 수 있다.

  • 일괄 처리는 프로그래밍을 천공 카드(punch card)로 하던 시절(...)에 작업 요청을 일정량 모아서 한꺼번에 처리하던 방식이라고 한다. (필자도 지도교수님께서 학부시절에 과제를 내려면 천공카드로 프로그래밍해서 전산실에 요청하고 그 다음날 결과를 보셨다는 것을 들은 적이 있다..)
  • 시분할은 최근 운영 체제들이 대부분 채택하고 있는 방식으로 매우 빠른 자원인 CPU를 매우 작은 시간 단위로 쪼개어 각각의 작업들이 돌아가면서 사용하는 것을 의미한다. 이는 앞선 일괄 처리 시스템에 비해 짧은 응답 시간을 가지며 인터렉티브하다. 그러나 사용자 위주이므로 데드라인이 엄격한 작업에 적합하지는 않다.
  • 실시간은 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 시스템을 위한 방식이다. 가령 미사일을 제어한다거나 반도체 생산 설비를 제어하는 시스템의 경우 사용될 수 있다. 얼마전 성공적으로 발사돼 안정적인 운영을 보여준다는 제임스 웹 우주망원경에도 윈드리버사의 VxWorks라는 실시간 운영체제(RTOS)가 탑재되었다. 이처럼 작업의 종료가 정밀하게 보장되어야 할 때 사용되는 운영체제를 실시간 운영체제라고한다. 여기에는 경성(hard)과 연성(soft)이 있는데 경성은 로켓, 미사일과 같은 엄격한 시스템에 해당되며 연성은 영화 재생과 같이 늦는다고해서 인명 및 재산 피해와 같은 큰 타격이 없을 때 사용된다.

 

운영 체제의 예

DOS(Disk Operating System)

  • 1981년 IBM-PC를 위해 MS사가 개발
  • 단일 사용자용 운영체제이며 메모리 관리 능력의 한계 존재(주 기억 장치가 640KB..)

MS Windows

  • MS사의 다중 작업용 GUI 기반 운영체제
  • Plug and Play, 네트워크 환경 강화
  • DOS용 응용 프로그램과 호환성 제공
  • 초반엔 불안정했으나 최근에는 안정적
  • 풍부한 지원 소프트 웨어

UNIX

  • 코드 대부분을 C언어로 작성(UNIX를 위해 개발된 언어가 C)
  • 높은 이식성(C언어는 high-level이므로 하드웨어에 종속되지 않음)
  • 최소한의 커널 구조
  • 복잡한 시스템에 맞게 확장 용이
  • 소스 코드 공개
  • 프로그램 개발에 용이
  • 다양한 버전
    • System V, FreeBSD, SunOS, Solaris
    • Linux(slackware, debian, redhat, arch linux, ubuntu 등 배포판)

 

운영 체제의 구조

  • CPU 스케줄링
  • 메모리 관리
  • 파일 관리
  • 입출력 관리
  • 프로세스 관리
  • 그 외
    • 보호 시스템
    • 네트워킹
    • 명령어해석기(command line interpreter)

'STUDY LOG > Operating Systems' 카테고리의 다른 글

컴퓨터 시스템의 구조  (0) 2022.07.07