운영 체제

Single Ko·2023년 4월 20일
0

operating system

목록 보기
1/13

운영 체제란?

  • 컴퓨터에서 항상 실행되는 프로그램 (커널)

  • 시스템 서비스를 애플리케이션 프로그램에 제공한다.

  • 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

  • 프로세스, 리소스, 유저 인터페이스 등을 관리한다.

    정리) 컴퓨터 유저와 컴퓨터 하드웨어간의 중간 매개체 역할을 하는 것

  • 참고) 특정 하드웨어의 제어(low-level control)와 구동을 담당하는 일종의 운영체제. 운영체제와 유사하지만 소프트웨어를 추가로 설치 할 수 없는 것 : 펌웨어

    운영 체제의 구조

  • GUI,시스템 콜 , 커널, 드라이버,

  • 협의의 운영체제(커널) ─ 운영체제의 핵심 부분으로 컴퓨터 부팅 이후부터 계속 메모리에 상주하는 부분

  • 광의의 운영체제 ─ 커널 뿐 아니라 각종 주변 시스템 유틸리티(메모리에 상주하지 않는 독립적인 프로그램들)를 포함한 개념

운영 체제의 목적

  1. 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공.

    • 운영체제가 자원을 효율적으로 관리하고 사용자들에게 고르게 분배하기 때문에 사용자/프로그램의 입장에서는 자신이 컴퓨터를 혼자 점유하고 있는 듯한 환상을 느끼게 된다.
  2. 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행

  3. 컴퓨터 시스템의 자원을 효율적으로 관리

    • CPU, I/O 장치, Memory등 (컴퓨터의 자원)을 관리. 효율성과 형평성을 중시
    • 사용자 및 운영체제 자신 보호
    • S/W도 관리(프로세스,파일, 메시지 등 관리)

    ** Memory 관리 : 프로그램한테 공평하게 메모리를 나눠주는 것이 아니라운영체제의 판단에 따라 특정 프로그램에 많은 메모리 공간을 할당 할 수 있음.

운영 체제의 분류

  1. 동시 작업 가능 여부
  • 단일 작업(single tasking) : 한 번에 하나의 작업만 처리(옛날, MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에는 다른 명령을 수행시킬 수 없음.)
  • 다중 작업(multi tasking) : 동시에 두 개 이상의 작업 처리 (현대의 컴퓨터는 다중 작업이 가능하다.)
  1. 사용자의 수
  • 단일 사용자(single user) ex) MS-DOS, MS Window
  • 다중 사용자(multi user) ex) UNIX, NT server : 한대의 컴퓨터에 여러 사용자가 터미널 형태로 동시에 접속해서 사용할 수 있음.
  1. 처리 방식
  • 일괄 처리(batch processing)
  1. 작업 요청의 일정량을 모아서 한꺼번에 처리.
  2. 작업이 완전 종료될 때까지 기다려야 함.
    ex) 초기 Punch Card처리 시스템
  • 시분할(time sharing)
  1. 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용.
  2. 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
  3. Interactive한 방식
  • 실시간(Realtime OS)
  1. 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS. - 데드라인
    ex) 원자로, 공장 제어, 미사일 제어, 반도체 장비 등..
  2. 실시간 시스템의 개념 확장 : Hard realtime system(경성 실시간 시스템) 어기면 진짜 큰일남 , Soft realtime system(연성 실시간 시스템) 어겼다고 해서 엄청난 문제는 생기지 않음. 하지만 불편함을 초례할 수 있음. ex) 동영상이 끊기는 것

    몇가지 용어

    Multitasking(multiprocessing) - 여러가지 작업을 처리할 수 있다
    Multiprogramming - 메모리 측면을 강조한것, 메모리에 여러 프로그램이 올라가있음.
    Time sharing - 시분할. CPU를 강조한 용어
    Multiprocess - 작업을 실행하기 위해 둘 이상의 프로세서를 동시에 사용하는 것.
    Multiprocessor - 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음.
    Multi-core design - CPU안에 레지스터와 캐시를 가지고 있는 CPU 코어를 여러개 있는 것

    Process 프로세스 : (실행중인 프로그램)
    Processor 프로세서 : CPU를 뜻함.

    Symmetric multiprocessing(SMP) - 두 개 이상의 동일한 processor가 하나의 메모리에 연결되고 모두 단일 운영 체제(OS)의 제어하에 함께 작동하는 일종의 병렬 처리 아키텍처. 멀티프로세서 시스템용 특정 아키텍처입니다

운영체제의 예

유닉스(UNIX) : 큰 서버를 위한 운영 체제, 다중 사용자, 다중 프로그램, 하드웨어 관리

  • 코드의 대부분을 C 언어로 작성 (어셈블리로 만들기 힘들어서, C를 만들어 유닉스 만듬..)
  • 높은 이식성
  • 최소한의 커널 구조
  • 복잡한 시스템에 맞게 확장 용이
  • 소스 코드 공개 (판매용은 공개 x)
  • 프로그램 개발에 용이
  • 다양한 버전 : FreeBSD, SunOS, Solaris, System V , Linux

DOS(Disk Operating System)

  • MS사에서 1981년 IBM-PC를 위해 개발
  • 단일 사용자용 운영체제, 메모리 관리 능력의 한계(주 기억 장치: 640kb)

MS Windows

  • MS사의 다중 작업용 GUI 기반 운영 체제
  • Plug and play, 네트워크 환경 강화
  • DOS용 응용 프로그램과 호환성 제공
  • 풍부한 자원 소프트웨어
  • 불안정성(초창기.. 지금도 가끔 블루스크린. 유닉스는 그런게 없음)

Handheld device를 위한 OS : AndroidOS, iosOS, PalmOS, Pocket PC(WinCE), TinyOS

운영 체제의 구조

컴퓨터 시스템은 크게 내부 장치와 외부 장치로 나눌 수 있다.

  • 컴퓨터 내부 장치(Host): CPU, 메모리
  • 컴퓨터 외부 장치(I/O device): 하드디스크, 키보드, 마우스, 모니터, 프린터 등..

운영체제는 이런 컴퓨터를 다루기 위해 그림에서 보듯 여러가지 일을 한다.
1. CPU 스케쥴링
2. 프로세스 관리
3. File 관리
4. I/O 관리
5. 네트워킹, Security, Command Line 해석

운영체제는 결국 이런 컴퓨터 시스템을 전부 다루는 것. S/W와 H/W는 운영체제의 통제를 받음.

현대의 컴퓨터 환경

Virtualization 가상화 기술

현대의 컴퓨터는 하드웨어의 발전이 엄청 이루어졌다. 하나의 컴퓨터에 이제는 한개의 OS가 아니라 몇개의 OS가 올라 갈 수 있게 만들어 주는것. 이걸 VMM(Virtual Machine Manager)를 통해 가능하다.

즉 하나의 컴퓨터에 여러개의 운영체제를 돌리는 것
VMM : VMware , XEN , WSL , Hyper-V 등...

Mobile Computing : 스마트폰(ios, Android)

Client-Server Computing : client들이 server에 붙어서 통신. (웹이 대표적 - request, response)

Peer-to-Peer Computing : P2P (Torrent) , BlockChanin

Cloud Computing : AWS, Azure, GCP, NaverCloud

  • 컴퓨팅 자원은 전부 클라우드에 있고 내 컴퓨터는 네트워크를 통해 서비스를 제공받음.

Real-Time Embedded Systems : 화성탐사 로봇의 시스템.

profile
공부 정리 블로그

0개의 댓글