[운영체제] 1. 운영체제의 시작과 발전

황재성·2022년 5월 16일
0

운영체제

목록 보기
1/9

운영체제의 개념

운영체제의 정의

  • 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램을 실행을 관리하고 제어하는 시스템 소프트웨어 (운영체제는 컴퓨터가 아니며, 실체가 있는 소프트웨어이다.)

  • 컴퓨터가 켜질 때 처음으로 메모리에 적재되어 나머지 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어

  • 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어

운영체제의 정의에서 핵심 단어

  • 운영체제는 모든 컴퓨터 자원 관리
    - 하드웨어 자원 - CPU, 캐시나 메모리, 키보드, 마우스, 디스플레이, 하드디스크, 프린터
    - 소프트웨어 자원 - 응용프로그램
    - 데이터 자원 - 파일, 데이터베이스 등

  • 운영체제는 자원에 대한 독점 권한
    - 자원할당, 자원 공유, 자원 액세스, 자원 입출력 등
    - 예: 파일 생성 - 디스크의 빈 공간 관리, 파일 저장 위치 관리, 파일 입출력

  • 운영체제는 관리자
    - 실행 중인 프로그램 관리, 메모리 관리, 파일과 디스크 장치 관리, 입출력 장치 관리, 사용자 계정 등 관리...

  • 운영체제는 소프트웨어
    - 커널이라고 불리는 핵심 코드와 UI/도구 프로그램들( 탐색기, 작업관리자, 제어판 등) 장치를 제어하는 디바이스 드라이버들로 구성

운영체제의 목적과 기능

  • 운영체제의 목적
    - 사용자의 컴퓨터 사용의 편리성
    - 컴퓨터 자원 관리의 효율성

  • 운영체제의 기능
    - CPU/프로세스 관리
    - 메모리 관리
    - 파일 시스템 관리
    - 장치 관리
    - 네트워크 관리
    - 보안 관리
    - 기타 관리 ( 사용자 계정 관리, 통계(CPU, 메모리, 네트워크, 사용자 접속시간 등, 오류 발견 및 대응, 부팅) )

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

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

운영체제의 태동

고정 프로그램 컴퓨터 - 1940년대

내장 프로그래밍 방식 - 1945년 ~

  • 오늘날의 컴퓨터의 구조
  • 내장 프로그램 컴퓨터의 의미
    - CPU와 메모리 분리
    - 소프트웨어와 하드웨어 분리
    - 실행할 프로그램을 메모리에 담고, CPU가 프로그램을 실행하는 방식
    - 프로그램은 입력 장치를 통해 메모리에 적재 (펀치카드에 구멍을 뚫어 프로그램 작성, 카드리더기로 프로그램을 메모리에 읽어 들임)

프로그램 로더의 발견 - 1950년대

  • 프로그램 로딩 시대 -> 운영체제 개념의 시작

  • IBM 701 메인 프레임
    - 1954년 IBM에서 만든 첫 번째 내장 프로그래밍 방식의 컴퓨터
    - IBM의 첫 번째 범용 컴퓨터
    - 판매X ONLY 대여
    - 기계만 대여하고 어떤 소프트웨어도 제공하지 않았음
    - LOAD 버튼 : 한 장의 카드만 읽는 것으로 끝남. 카드 한 장에는 최대 24개의 명령을 작성할 수 있었음. LOAD 버튼 대신 수동으로 프로그램을 입력하고 실행시키기 위해 컨트롤 패널에서 Enter Instruction 버튼, Start Button 등을 눌러 실행시킬 수도 있었음

  • 로더 프로그램 필요 : 첫번째 카드 반복 작성 -> 낭비 -> 목적 프로그램을 읽어들이는 코드(로더)의 작성 필요 (로더는 모든 컴퓨터에 공통적으로 필요)

    첫 번 째 카드 : 다음 카드에 작성된 프로그램을 메모리에 적재하는 코드만 작성
    두 번 째 카드부터 : 목적하는 프로그램 작성

★ 로더가 운영체제로 발전

원시 운영체제 OS 탄생 - 1955년

  • 1955년, IBM701의 고객 GM에 의해 개발
    - 펀치 카드에 담긴 프로그램을 메모리에 로딩하는 로더 프로그램 개발
    - 로더 프로그램은 테이프에 저장, 필요할 때마다 실행
    - [참고] 로더를 모니터라고 불렀음
    - 후세대, General Motors Operating System (GM OS)라고 불렀음

최초의 운영체제 GM-NAA I/O 탄생

  • 1955년 GM은 IBM 701의 처리 속도를 높인 IBM 704 주문

  • 여전히 문제점 존재
    - 개발자들은 여전히 대기 번호를 뽑고 자신의 차례를 기다림
    - 비싼 컴퓨터를 많은 시간 놀리고 있다는 점
    - 카드 입력 장치나 테이프 입력 장치를 제어하는 프로그램 코드와 하드웨어 서비스 루틴은 개발자가 별도로 알아서 작성

  • 최초의 운영체제 GM-NAA I/O 개발
    - 1956년 GM과 NAA(North American Aviation)의 공동 개발 (IBM 701의 모니터 프로그램을 확장하여 구현)

  • 운영체제로서의 모습 갖춤
    - 배치 방식(batch operating system)으로 작동 (여러 개발자들이 작성하여 쌓아놓은 작업들을 순서대로 하나씩 자동으로 메모리에 로딩하고 한 번에 하나의 작업만을 실행해주는 배치 운영체제)
    - 사용자 입출력을 다루는 코드 메모리에 상주(오늘날 운영체제 방식)

*GM-NAA-IO의 구조

  • 어셈블러 코드
    - 사용자가 작성한 어셈블리어 프로그램을 기계어 코드로 번역
  • 로더 프로그램
    - 사용자 프로그램을 하나씩 메모리에 적재
  • 공통 입출력 코드 및 메인 코드
    - 장치 입출력을 다루는 프로그램 코드와 운영체제 시작 코드

배치 방식의 운영체제로 인해서 개발자는 펀치 카드를 입력 데크에 두고 결과를 기다리기만 하면 자동으로 테이프 장치에 대기 중인 프로그램을 한 번에 하나씩 적재하고 실행시켜주었다.

운영체제의 발전

다중프로그래밍 운영체제

1) 출현배경

  • 1960년대 중반, CPU 등 하드웨어 속도 개선, 컴퓨터 가격 증가
  • 프로그램의 실행 형태로 인한 CPU의 idle 시간 발생
    - CPU작업 - I/O작업 - CPU작업 - I/O작업의 반복
    - I/O 작업이 이루어지는 동안 CPU는 놀면서 대기
    - CPU의 idle 시간을 줄이기 -> CPU 활용률 증가 -> 처리율 증가(더 많은 사용자 프로그램 실행)를 목표로 함

2) 다중 프로그램 기법 출현

  • 미리 여러 프로그램을 메모리에 적재 (메모리가 수용할 만큼 프로그램 적재)
  • 프로그램 실행 도중 I/O가 발생하여 대기하게 될 때, 메모리에 적재된 다른 프로그램 실행

시분할 다중프로그래밍 운영체제

1) 출현 배경

  • 다중프로그래밍 운영체제와 거의 동시에 연구 시작
  • 배치처리와 당시 다중프로그래밍의 다음 2가지 문제점 인식
    - 비대화식 처리방식
    - 느린 응답시간, 오랜 대기 시간 (프로그램 제출하고 하루 후에 결과보기, 사용자의 즉각적인 대응 없음)

2) 시분할 운영체제의 시작(John McCarty)

  • 빠른 프로그래밍 디버깅 필요
  • 사용자에게 빠른 응답을 제공하는 대화식 시스템 제안
    - 터미널(키보드 + 모니터 + 전화선 + 모뎀)
    - 사용자는 터미널로 메인 컴퓨터에 원격 접속
    - 시간을 나누어 돌아가면서 각 터미널의 명령 처리
  • CTSS(Compatible Time Sharing System) 시분할 시스템 개발

[참고]
시분할 운영체제를 가진 시스템

  • 터미널은 모니터와 키보드, 모뎀으로 구성된 간단한 입출력 장치이며, 전화선으로 메인프레임과 연결
  • 메인프레임 컴퓨터에는 터미널(사용자)마다 사용자의 명령을 받아 처리하는 프로그램 실행
  • 시분할이란 각 프로그램에게 고정된 시간 만큼 CPU를 할당하여 번갈아 실행시키는 기법
  • 사용자의 키 입력 속도에 비해 컴퓨터의 속도가 비교할 수 없이 빠르기 때문에 시분할 처리 가능
  • 사용자가 느리기 때문에 시간을 나누어 CPU가 여러 프로그램을 실행한다고 하더라도 사용자는 응답이 늦게 온다고 여기지 않는다. 사용자는 명령을 내리기 위해 생각하거나, 이전 결과를 분석하거나, 커피를 마시거나, 화장실을 가거나 하는 등 많은 시간을 지체하기 때문이다.

배치 vs 다중 vs 시분할 다중 운영체제

배치다중프로그래밍시분할 다중프로그래밍
총 실행 시간301716
CPU 유휴 시간1410
CPU 활용률16/30 = 0.53 = 53%16/17 = 0.176 = 94%16/16 = 100%
처리율3/30 = 0.1작업/시간3/17 = 0.176작업/시간3/16 = 0.1875작업/시간

여러가지 운영체제

출처 : 명품 운영체제

profile
데이터사이언스와 자연어처리를 공부하고 있습니다.

0개의 댓글