운영체제 정의

운영체제

  • 사용자와 컴퓨터 하드웨어 사이에서 중계역할을 하면서, 프로그램의 실행을 관리하고 제어하는 시스템 소프트웨어
  • 컴퓨터가 켜질 때 메모리에 적재되어 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어
  • 컴퓨터와 자원을 독접적으로 관리하는 특별한 소프트웨어

운영체제의 속성

  1. 운영체제는 모든 컴퓨터 자원(resource) 을 관리한다
    • 운영체제는 컴퓨터 자원이 모든 사용자와 모든 응용프로그램에 의해 잘 공유되도록 관리하는 소프트웨어
  2. 운영체제는 자원을 독점(exclusive) 한다
    • 자원에 대한 접근과 관리 권한이 오직 운영체제에게만 있다
    • 파일이 생성되고 삭제되는 과정에서 디스크의 빈 영역을 관리하고, 파일이 저장되는 위치를 결정하고, 디스크에 파일을 기록하거나 읽는 행위는 모두 운영체제에 의해 실행
    • 자원에 대한 접근 권한을 운영체제만 가지게 함으로써 사용자들과 응용프로그램들로부터 자원에 대한 훼손을 막고 그들 사이에 자원을 효과적으로 공유할 수 있도록 하기 위함
  3. 운영체제는 관리자(supervisor) 이다
    • 사용자에 대한 관리(로그인 계정, 비밀번호, 우선순위, 통계정보)
    • 프로그램 실행에 관한 자원 관리(메모리 할당 및 보호, 프로그램 스케줄링, 저장공간 관리)
    • 성능 관리(자원의 활용률을 높여 처리율을 높이고 빠른 응답을 제공하는 등 성능 극대화)
    • 보안 관리(외부의 침입으로 부터 사용자와 컴퓨터 자원 보호)
  4. 운영체제는 소프트웨어(software) 이다
    • 운영체제는 커널, UI, 도구 프로그램, 디바이스 드라이버로 구성
    • 커널 : 관리 기능을 수행하는 핵심 코드, 저장 장치에 저장되어 있다가 컴퓨터가 부팅될 때 메모리에 적재, 응용 프로그램이 자원을 접근하기 위해 호출할 때 실행되어 하드웨어 제어

운영체제의 목적과 기능

사용자의 컴퓨터 사용 편리성자원의 효율적 사용과 관리

  • CPU/프로세스 관리
    • 저장 장치에 저장된 프로그램을 메모리에 적재(프로세스)
    • 프로세스 실행, 생성, 중단, 스케줄링, 종료 등 프로세스 관리 기능 수행 및 프로세스 간 통신 동기화 기능 제공
  • 메모리 관리
    • 프로세스에 적절한 메모리를 할당하고 반환, 보호
    • 가상 메모리 기법
  • 파일 시스템 관리
    • 파일마다 파일 정보 관리, 파일 시스템 정보 관리, 파일과 디렉터리 생성 및 관리
    • 파일을 다루는 모든 기능 수행
  • 장치관리
    • 다양한 입출력 장치들과 저장 장치를 제어하고 물리적인 입출력 실행
  • 네트워크 관리
    • 네트워크 장치 관리 및 네트워크 입출력 실행
  • 보안 관리
    • 컴퓨터 시스템과 사용자 정보 보호
  • 기타 관리
    • 사용자 정보 관리 및 통계 수집 관리, 오류 발견 및 대응 기능 수행, 부팅 기능 수행

운영체제와 응용 소프트웨어

구분운영체제응용소프트웨어
목적컴퓨터 하드웨어나 응용 소프트웨어 등 자원 관리
컴퓨터 시스템이 효율적으로 사용되도록 서비스 제공
컴퓨터 사용자들의 요구를 충족시킬 수 있도록 설계된 소프트웨어
기능프로세스, 메모리, 파일 시스템, 입출력 장치 등 자원 관리와 사용자 관리소프트웨어를 만든 특정 목적만 수행
개발 언어C/C++, 어셈블리어C/C++, Java, Python, C#등 다양한 언어
실행부팅 시 메모리에 적재되어 실행을 시작하여 컴퓨터를 끌 때까지 실행사용자의 명령이나 다른 응용 소프트웨어의 명령이 있을 때 실행되고 작업이 끝나거나 사용자가 강제로 종료시킬 때 종료
자원에 대한 접근 권한컴퓨터의 모든 자원에 대해 배타적으로 독점 사용 권한컴퓨터 자원을 사용하고자 할 때 반드시 운영체제에게 요청
(시스템 호출)

고정 컴퓨터

  • 컴퓨터의 모든 기능을 하드웨어로 제작
  • 한개의 프로그램을 하드웨어로 고착화
  • CPU와 메모리 개념 분리 x

내장 프로그램 컴퓨터

  • 폰 노이만
  • 컴퓨터를 하드웨어와 소프트웨어로 분리
  • 컴퓨터의 구조를 CPU와 전자식 메모리로 나누고 코드들을 전자식 메모리에 적재하고 CPU가 메모리에서 명령들을 하나씩 CPU 내부로 가지고 와서 처리하는 방식
  • 실행할 프로그램은 메모리에 담고 CPU가 프로그램 실행
  • 프로그램은 입력 장치를 통해 메모리에 적재

로더 프로그램

  • 로더 : 목적 프로그램을 읽어 들이는 코드
  • 프로그램을 실행할 때마다 꼭 있어야하는 로더 프로그램 오늘날의 운영체제

GM OS(1995)

  • 최초의 원시 운영체제

GM-NAA I/O (1956~1957)

  • GM 문제점 개선
  • 여러 개발자들이 작성하여 쌓아놓은 작업들을 한번에 하나씩 순서대로 메모리에 적재하고 실행시키는 것
  • 오늘날 일종의 배치 운영체제
  • 개발자와 관리자 분리
  • 구성
    • 어셈블러 코드 : 사용자가 작성한 어셈블리어 프로그램을 기계어 코드로 번역
    • 로더 프로그램 : 사용자 프로그램을 메모리에 적재
    • 공통 입출력 코드 및 메인 코드 : 장치 입출력을 다루는 프로그램 코드와 운영체제 시작 코드
  • 응용 프로그램 개발자들이 공통으로 필요한 코드를 표준화하여 라이브러리 형태로 미리 만들어두어 개발 부담을 줄임 > 라이브러리 개념 등장

배치 운영체제

  • 컴퓨터의 노는 시간을 줄여 컴퓨터의 활용률을 향상 시킬 필요에 의해 배치 운영체제가 개발
  • 배치 운영체제의 도입으로 개발자와 관리자 구분

배치(batch) ? 한 개발자가 작성한 펀치 카드의 묶음이며 배치 작업을 줄여 부르는 말 배치 = 하나의 프로그램

  • 관리자가 컴퓨터 작동 > 배치 운영체제가 실해오디어 자동으로 테이프 장치에 들어있는 배치 작업을 메모리로 읽어 들이고 실행 > 한번에 하나씩 작업 처리
  • 배치 운영체제로 작업을 처리하는 방식을 배치 처리라고 부름

여러 배치 작업들을 모아서 한꺼번에 실행하되 한 번에 한개씩 순차적으로 실행하고, 비대화식이며, 프린터에 결과를 출력하며, 작업을 요청한 한참 뒤에나 결과를 받음

다중 프로그래밍(multiprogramming) 운영체제

  • CPU를 효율적으로 사용하는 방법 고안
  • 배치는 한번에 한개의 작업만 실행시키므로 CPU가 프로그램을 실행하다가 I/O 작업이 발생하면 작업이 끝날때까지 대기해야 함

다중 프로그래밍 ? 여러 프로그램을 메모리에 올려놓고 동시에 실행시키는 기법, CPU가 한 프로그램을 실행하다 I/O가 발생하면 입출력이 완료될 때까지 CPU가 메모리에 적재된 다른 프로그램을 실행하여 CPU의 노는시간 감소

배치 운영체제와 다중프로그래밍 운영체제 비교

  • 다중프로그래밍 이슈
    • 큰 메모리 이슈 : 여러 프로그램을 동시에 올리기 위해 메모리 크기 증가
    • 프로그램 메모리 할당 및 관리 이슈
    • 메모리 보호 이슈
    • CPU 스케줄링과 컨텍스트 스위칭
    • 인터럽트 개념 도입
    • 동기화
    • 교착상태 해결

시분할 다중프로그래밍(Time Sharing Multiprogramming)

시분할 다중프로그래밍? 적재된 여러 프로그램을 시간 단위로 나누어 번갈아 실행시키는 기법 비대화식 처리방식, 느린 응답시간과 오랜 대기시간 문제 해결을 위해 연구

  • 비대화식 처리방식(non-interactive processing)
    • 여러 프로그램을 메모리에 적재하고 동시에 실행시키지만 여러 프로그램들이 특정 시간에 모두 처리되며 실행 결과도 한참 후에 받게되는 방식
  • 느린 응답 시간과 오랜 대기시간
    • 프로그램이 실행되는 중간 결과에 대해 사용자의 즉각 대응이 불가능

시분할 운영체제를 가진 시스템

  • 여러개의 프로그램을 메모리에 적재하고 1초나 100밀리초등 시간 할당량(time slice)을 정하여 시간 할당량만큼 메모리에 적재된 모든 프로그램에게 돌아가면서 CPU를 할당하고 실행시킨다

  • 터미널은 키보드와 모니터, 모뎀으로 이루어진 간단한 입출력 장치
  • 전화선을 이용하여 메인프레임 컴퓨터에 연결
  • 사용자 개수(터미널 개수)만큼 사용자와 대화하도록 미리 준비된 프로그램을 실행
  • 이 프로그램은 해당 터미널로부터 사용자의 명령을 받아 명령을 처리하고 결과를 터미널에 출력한 후 사용자로부터의 다음 명령 대기
  • 일정 시간간격으로 돌아가면서 프로그램에게 CPU를 할당함 사용자가 명령을 입력하는 시간 동안 CPU가 다른 사용자들로부터 들어온 명령들을 충분히 처리할 수 잇기 때문에 속도가 빠름

한 번에 많은 시간이 걸리는 작업(ex 통계처리) 배치 운영체제 한 번에 처리할 작업량이 적고 사용자가 컴퓨터와 대화식으로 작업을 처리 시분할 운영체제

라운드 로빈(round-robin, RR)

  • 시분할 운영체제에서 각 프로그램에게 동일한 시간할당량만큼씩 번갈아 실행시키는 스케줄링 기법

개인용 운영체제

  • 컴퓨터의 용도와 활용이 점점 늘어나면서 원격으로 접속하지 않고 가정에서 혼자 사용할 수 있는 개인용 컴퓨터에 대한 관심 증가
  • 마이크로세서(Microprocessor, 하나의 반도체 칩(chip)으로 만들어진 CPU 장치)의 개발

운영체제의 종류

  • 데스크톱 운영체제 : PC나 노트북 등 책상 위에 두고 개인 사용자가 사용하는 데스크톱 컴퓨터
  • 서버 컴퓨터 운영체제 : 웹 서버, 데이터베이스 서버, 파일 서버, 메일 서버 등 서버 소프트웨어를 실행시키는 목적
  • 모바일 운영체제 : 모바일 전화기, 스마트폰, 태블릿 등 이동용 또는 휴대용 장치에서 실행되도록 만들어진 운영체제
  • 임베디드 운영체제 : 자동차, 비행기, 제어시스템 등 가전제품이나 상용제품에 내장되어 작동을 제어하는 컴퓨터에 실행되어 장치들을 제어하고 작동
  • 실시간 운영체제 : 실시간 응용프로그램 혹은 완료시간 이내에 처리되도록 보장하는것을 목표로 하는 운영체제

출처 - https://www.booksr.co.kr/product/%EB%AA%85%ED%92%88-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%88%98%EC%A0%95%ED%8C%90/