관리 메뉴

사과하는 제라스

2. OS의 구조(with OS의 역사 및 발전) 본문

대학 전공 공부/운영체제

2. OS의 구조(with OS의 역사 및 발전)

Xerath(제라스) 2022. 9. 19. 16:28

목차

    728x90
    반응형

    1. 컴퓨터의 기원

    - Compute + -er

    => 2차 세계대전(암호 해석, 미사일 탄도 분석, 물리 계산 등)

     

    1) 1950년대 초반

    매우 원시적임, 1bit 단위로 입력되어 실행

     

    2) 1950년대 중반

    모든 프로그램이 기계어로 쓰여짐, 아직 PL, OS도 존재하지 않음, 영구적인 저장장치 없음(매번 프로그램 재입력)

     

    3) 1960년대 초반

    펀치카드 등장, 프로그래밍한 카드로 컴퓨터 구동

    2. 일괄처리(Batch)

    - 일단 시작한 job이 끝나야 다음 job이 수행됨.

    - 결과를 받기까지 중간에 유저 인터랙션 불가능함(= 중간에 개입이 안됨.)

    - 사람이 Job을 스케쥴링함.(∵OS가 없기 때문에)

    - CPU가 빈번히 IDLE 상태(프로세스가 실행되고 있지 않은 상태)로 전환됨

    3. Automatic Job Scheduling

    - 사람의 관여없이 여러개의 프로그램을 순차적으로 실행하고자 했음(=> OS가 생기기 시작함)

    - 이전 작업 종료되자마자 다음 작업을 실행해주기에 성능은 향상됨

    - 하지만, I/O에 의한 CPU가 IDLE상태로 전환되는 문제는 해결 못함.(이와 같이 비약적인 발전은 X)

    저장장치들의 타입에 따른 특징(magnetic disk의 경우 접근시간이 매우 길기에 IDLE 시간이 길 수 밖에...)

    4. Spooling(Simultaneous Peripheral Operation On-Line)

    : I/O를 진행하는 동시에 계산을 진행하는 방식.

    즉, 1번을 실행하고 그 작업을 끝날 때까지 기다리는게 아니라 버퍼에 저장해놓고 리턴해서 바로 다음 2번의 작업을 실행하는 방식

    5. Multiprogramming

    : 2개 이상의 작업을 동시에 메모리에 올려놓고 실행.

    - 스케쥴링: First Come First Served(순차적 실행)

    - 목적: 스풀링과 동일하게 IDLE타임 줄이기

    - 단점: 유저 인터랙션을 여전히 불가능했음.(사용자가 실행 중인 작업에 관여하지 못함.)

    1) 현재 수행되는 Job이 I/O를 해야만 다음 Job이 실행됨.

    2) 공평성 유지 필요해짐.

    3) 높은 우선순위 먼저 끝내주는 작업이 불가능함. (Job 스케쥴링이 순서대로만 수행되기에 먼저 끝내기 불가능했음.)

    6. Timesharing

    : CPU의 실행 시간을 타임 슬라이스로 나누어 실행.(타임 슬라이스동안 CPU를 점유하고 그 시간이 지나면 다음 프로그램에 양보)

    이렇게 각 작업들 사이에 CPU 스위칭(=context switching)이 일어나는데 이때 유저 인터랙션이 가능하다.

    7. Multitasking

    : 여러 개의 Task들이 CPU 같은 자원을 공유하도록 하는 방법.

    => 사용자가 여러 프로그램을 실행할 수 있도록 하고, CPU가 IDLE 상태일 때는 Background 작업을 실행 가능하도록 함.

    - 단점

    1) 복잡한 메모리 관리 시스템이 필요

    : Task들은 HW자원 공유함 -> ∴ 각 프로그램들이 사용하는 메모리 영역이 엄밀하게 나누어져 있어야 함.

     

    2) 적절한 응답 시간을 제공

    : 모든 Job들이 메모리에 올라와 있을 수는 없기에 일부는 하드디스크로 옮겨졌다가 다시 불려서 실행됨(Swap In/Out). 이때의 로딩시간 때문에 응답시간이 중요함.

     

    3) Concurrent Execution 제공

    : 서로 독립된 Task들이 실행될 때 더 빠르고 효율적으로 실행하기 위해 CPU 스케쥴링이 필요함.

     

    4) 필요에 따라 Job 간의 Orderly Execution이 필요함.

    순서대로 실행되어야 하는 Job의 경우 동시에 실행되면 안되는 문제가 생김.

    8. OS의 발전

     

    728x90
    반응형

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

    6. CPU Scheduling  (1) 2022.11.02
    5. Computer Architecture  (0) 2022.10.11
    4. Process  (0) 2022.10.09
    3. OS의 구조2  (0) 2022.10.07
    \\\\1. OS의 개요  (0) 2022.09.13