운영체제의 개요 및 종류

2023. 9. 16. 03:41전공/운영체제

운영체제란?

응용과 컴퓨터 하드웨어 사이에 위치하는 레이어

  • 운영체제는 일반적인 프로그램과 하드웨어 사이의 중간 소프트웨어

운영체제의 역할

  • 프로그램의 구동 및 운영을 쉽게 할 수 있도록 함
  • 프로그램들이 자원을 공유할 수 있도록 함
  • 프로그램들이 디바이스와 interaction 할 수 있도록 함

운영체제와 하드웨어

운영체제의 관여 작업 개요도

  • CPU : 입력된 data를 가지고 code(혹은 프로그램) 실행
  • Memory : 디스크로부터/에 code와 data 읽기/쓰기 작업 수행
  • Disk(Storage) : code와 data를 반영구적으로 저장
  1. 사용자가 프로그램을 실행(data를 함께 사용)
  2. 프로그램이 프로세스 형태로 메모리에 올라감
  3. CPU가 메모리에 올라와 있는 프로세스를 구성하는 명령어들을 불러와서 연산작업을 처리
  4. 디스크에 저장되어 있는 데이터도 가져와서 메모리 공간에 할당
  5. 프로세스의 처리결과는 메모리를 통해 사용자에게 결과물로 전달된다.
  6. 결과물은 데이터의 구조를 가지고 디스크에 저장됨

운영체제 설계 목표

추상화(Abstraction)

  • 시스템을 사용 및 관리하기 쉽도록 함

성능 최적화(Performance)

  • 효율성(Efficiency) : 제한된 자원 하에서 최선의 성능 도출
  • 공정성(Fairness) : 특정 프로그램의 자원 할당 편중 방지

보호(Protection)

  • 응용 간의 할당 메모리 영역 침범 방지
  • 특정 응용의 CPU 자원 독점 방지
  • 특정 응용의 OS 권한 명령어 실행 방지

기타

  • 보안(Security), 신뢰성(Reliability), 에너지 효율성, 이동성

컴퓨터 시스템 구조

CPU

  • 컴퓨터 연산장치

Memory

  • 프로그램 또는 데이터가 일시적으로 탑재되는 공간 like 책상

Memory controller

  • 메모리와 CPU사이에 존재하여 메모리 관리를 신속하게 효율적으로 수행할 수 있도록 함

Device

입출력 장치

키보드, 마우스, 모니터 등

주변장치(peripheral device)

이더넷 카드, 스피커, 와이파이, 블루투스, 프린터 등

Storage

  • 데이터 저장

device controller

  • 디바이스 관리 효율적으로 해주는 소형 CPU

System bus

  • 컴퓨터의 각 구성요소들이 서로의 데이터를 송수신하고, 신호를 전달

OS(운영체제)

  • 프로세스 형태로 존재
  • 메모리 위에 존재
  • CPU에 의해서 작업이 처리됨

CPU 스케쥴링

  • 프로세스에게 CPU 시간 할당
  • Throughput 최대화
  • Fairness 최대화

메모리 관리

  • 물리-가상 메모리 매핑
  • 페이징

IO 관리

  • 빠른 CPU / 느린 IO장치
  • 인터럽트 / 캐싱
  • CPU이용률 최대화

운영체제의 종류

UNIX

  • 멀티태스킹(Multi-tasking) 기반의 시분할(Time sharing) OS
    • TIme sharing : 프로세스가 사용할 시간을 정해서 정해진 시간만 큼씩 CPU자원을 사용
  • 1964년 MIT, Bell Lab, GE 합작 GE-645용 OS, Multics가 기원
  • 1971년 Bell Lab에서 Ken Thompson 및 Dennis Ritchie가 개발
  • UNIX 커널을 재컴파일하고 유틸리티를 제작하기 위한 C언어 파생
  • TCP/IP, socket 등의 네트워크 프로토콜, 인터페이스 포함

UNIX-like OS

  • POSIX(Portable Operating System Interface & UNIX)
  • IEEE에서 제정한 유닉스 응용 인터페이스 표준 규격
  • POSIX를 따르는 OS : UNIX-like OS
  • Linux, FreeBSD 등

Linux

  • Linux Kernel + GNU (GNU/Linux)
  • Multi-users, Multi-tasking, Multi-threads 기반의 Time sharing OS
  • 1991년, 필란드 헬싱키 대학의 Linus Benedict Torvalds 가 개발
  • 교육용 UNIX-like OS인 Minix에서 파생, GPL License채택
  • 클라우드 90%, 스마트폰 82%, 임베디드 62%, 슈퍼컴퓨터 99% 점유

Linux의 배포판

  • Debian
    • .deb 패키지, apt 패키지 관리자
    • Ubuntu
  • RHEL(Redhat Enterprise Linux)
    • .rpm 패키지, yum 패키지 관리자
    • CentOS, Redora
  • SUSE
    • Zypp 패키지 관리자
    • openSUSE
  • Zentoo Linux

MS-DOS

  • Microsoft Disk Operating System
  • 1981년 MS에서 IMB PC용 OS개발 외주로 출시
  • Seattle Computer Products회사의 Tim Paterson가 개발한 86-DOS(Q-DOS)의 변형판
  • Single-user, Single-tasking, Batch processing
  • Command Line Interface(CLI)
  • 1982 MS-DOS 1.0부터 1994 MS-DOS 6.22까지 출시
  • cmd.exe가 MS-DOS의 CLI참조

MS Windows

  • Microsoft Windows
  • MS-DOS + GUI(Graphic User Interfaces) + Multi-tasking
  • 1985년 Windows 1.0이 도스의 확장 프로그램으로 배포
  • 1990년 Windows 3.0 출시
  • 1995년 DOS와 분리된 독립 OS인 Windows 95 출시
  • WIndows NT 등을 거쳐 현재 Windows 10까지 출시
  • Windows 10에는 POSIX 호환 PowerShell이 제공

macOS

  • NeXTSTEP의 후속 OS인 Darwin 기반 Mac 전용 운영체제
  • NeXTSTEP : 1985년 CMU에서 개발한 Mach Kernel + UNIX BSD API
  • 이전 이름, OS 10
  • 이전 (1984-2001년)에는 Mac 운영체제로 System 1 - OS 9 사용
  • 2016년 파일시스템으로 APFS 개발(Apple File System)

그 외 모바일 운영체제

Android

  • Google 개발, Linux 기반 Open source mobile OS
  • Android 1.0(2008) - C..P 시작 네이밍 - Android 11(2020)
  • Samsung, LG, Xiaomi, Motorola 등에서 채택
  • Kernel + SDK 전부 공개

IOS

  • Apple 개발, macOS기반(Darwin/UNIX계열), 폐쇄성
  • iPhone, iPod Touch, iPad에서 사용
  • Android에 비해 상대적으로 강력한 보안성, 일관성, 연동성

'전공 > 운영체제' 카테고리의 다른 글

프로세스  (0) 2023.09.16
리눅스  (0) 2023.09.16
컴퓨터 시스템과 운영체제  (0) 2023.09.16
컴퓨터의 개요  (0) 2023.09.16
컴퓨터의 역사  (0) 2023.09.16