ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 운영체제 서론 및 역사
    Computer Science 2024. 4. 10. 11:18
    반응형

    개발자 안하니까 개발공부가 재밌고 하고싶은 신기한 마법 

    새로운 기술들이 우후죽순 쏟아지는 요즘, 기초를 단단하게 쌓고싶은 마음이 들었다. 

    경성대학교 양희재 교수님의 강의를 보며 운영체제 공부 시작! 

    http://kocw.net/home/search/kemView.do?kemId=978503


    운영체제란? 

    1. PC를 구입하면 운영체제가 설치되어 있음

    - Windows XP, Windows7, Linux , MS-DOS

    - max OSX , iOSNHTX`XB,

    → 운영체제가 없는 컴퓨터는 야생마. 

     

    컴퓨터 구조
    프로세서
    메인 메모리
    - ram : 휘발성 / 수백 메가 바이트 
    - rom : read only memory / 전원이 켜져도 유지됨 / 수십 키로 바이트 
    하드디스크 (보조기억장치) 가지고 있음 - 전원에 관계없이 유지됨 
    부트로더

     

    2. 컴퓨터는 "프로세스 - 메모리" 로 구성  = 메모리 내장 컴퓨터 (대부분 우리가 사용하는 모든 컴퓨터)

    -  프로세스는 메모리의 명령을 하나씩 가져와서 실행한다. 

    → 명령(instruction)들의 집합을 프로그램이라고 함. 

    → 따라서 컴퓨터에서 프로그램을 실행하기 위해서는 메모리에 프로그램을 미리 내장해두고 실행한다.

     

    3. 컴퓨터 하드디스크 안에 프로그램 실행을 위한 실행 파일이 들어있음 

    - 하드 디스크 내의 실행 파일을 메모리에 올려야 실행을 할 수 있을 것

    → 이 때 하드디스크에 있는 실행 파일을 메모리에 올려주는 것이 운영체제의 역할 

    → 운영체제가 메모리에 내장되어있지 않으면 메모리에 임의의 명령값이 들어가있기 때문에 컴퓨터가 전혀 제어되지 않음 

     

    4. 컴퓨터 실행 시 

    1) 컴퓨터를 실행하면 프로세스가 rom 영역의 명령어들을 실행함

    → POST(Power On Self Test) 실행 - 전기를 켜면 컴퓨터에 환경설정이 모두 잘 되어있는지 모두 테스트 

    → 부트로더가 실행 : 하드디스크 안에 설치되어있는 운영체제를 메인메모리(ram 영역)로 가져옴 

    → rom은 더이상 실행되지 않음 

     

    2) 운영체제가 메인메모리로 올라오면 운영체제가 모든 것을 제어 → 바탕화면이 나타남 

    → 운영체제를 메모리의 Resident라고 한다 (상주한다)

    → 프로세스는 하나인데 동시에 여러개의 실행파일을 실행시키는 역할도 운영체제 / 실행파일을 하드디스크에 저장하는 역할도 운영체제 

     

    따라서 운영체제의 구조는?

    1. 운영체제는 하드웨어 장치를 원하는대로 제어하는 관리 프로그램 

    → Control program for computer 

    → 프로세스 관리, 메모리 관리, 입출력장치 관리, 파일시스템 관리, 네트워크 관리, 보안(security) 관리 등  

    (가장 중요한건 프로세스(cpu) 관리와 메모리 관리) 

    운영체제 (os)는 정부 (government)와 비슷하다 
    - 정부는 자원 관리자 / 자원 할당자로써 자원을 가지고 있지만 직접 일하지 않고 관리한다. 
    (업무별 부서인 행정부, 교육부, 국방부, 건설교통부가 직접 일함) 
    "주어진 자원을 어떻게 가장 잘 활용할까?"
    - OS가 좋으면 성능이 좋아짐 

     

    2. 운영체제는 kernal과 shell & command interpreter으로 구성  

    shell & command interpreter는 명령을 내릴 수 있도록 만들어주는 것

    ex) $ls / $who / $ df

     

     

    운영체제의 역사 

     

    1. 1940-1950 : 운영체제 없음 

    Card reader - Memory - Processing - Line printer  

     

    - 카드리더기에 프로그램을 넣어 메모리에 적재 

    - 이후 카드리더기에 컴파일러 넣어 프로그램을 기계어로 변경함 

     

    2. Batch processing (일괄처리)

    - Operator가 일일히 손으로 했던 아래의 과정을 메모리에 넣자! → 최초 os = resident monitor 

    Card reader에 소스코드 카드를 넣어 메모리에 적재 
    이후 컴파일러 카드를 넣어 라이브러리와 링크하여 번역
    메모리의 적절한 위치에 로딩도 필요   

     

    - 프로세스, 메모리에 user program(컴파일러, 링크 등) 한 가지와 os가 있음 

     

    3. 다중 프로그램 

    - cpu 실행 - io 실행 등 순차적으로 진행되는데, io실행될 때까지는 cpu가 할 일이 없음 

    → 빠른 cpu, 느린 io. 비싼 자원인 cpu가 idle 상태 

    - 메모리에 여러 개의 job을 올리자 

    → user program를 한 개가 아닌 num1 , num2, num3로 여러개 올림 

    → io를 만나면 cpu가 스위칭해서 계속 일을 할 수 있음 

    - 생각해야할게 많아짐 .

    → cpu의 성능을 향상 시켜야하는데 어떻게 성능을 향상 시킬 것인가? = cpu 스케쥴링 

    → 어떻게 메모리 관리를 해야 다른 곳에 침범하지 않을 것인가? = 메모리 관리 

     

    4. 모니터, 키보드 interactive가 등장!

    컴퓨터 한 대에 수많은 단말기를 붙임 

    → 단말기 = terminal (모니터, 키보드)

     

    5. 시공유 시스템 (time sharing system)

    - cpu가 user1 , user2, user3 의 일들을 1/100 초마다 스위칭 해서 일을 함

    = 1초마다 100번 일어남 . 3명일 경우 사람당 cpu 33번 할당 

    → interactive system (대화형) 가능 = 프로세스 간에 통신이 가능해짐

    → 동기 (여러명 중 순서를 정하는 것) / 가상메모리 (하드디스크의 일부를 메인메모리인 것처럼 사용) 

    ex) unix 

     

    컴퓨터 규모별 분류 

    - super computer, server, workstation, pc, handheld, embedded 

    반응형

    댓글

Designed by Tistory.