Operating System (MINIX) Study #1 Author: 이윤수 Date: 2002-02-26 오후 6:10:14 from '211.237.240.191' of '211.237.240.191' 1. INTRODUCTION system program - application program microprogram - device에 직접 접근하면서 다음 레이어에 cleaner interface를 제공 kernel mode/supervisor mode - user mode 1.1 WHAT IS AN OPERATING SYSTEM 1.1.1 확장머신으로서의 OS extended machine/virtual machine을 제공 1.1.2 Resource Manager로서의 OS 1.2 HISTORY OF OPERATING SYSTEMS 1.2.1 1세대 진공관/Plugboard wiring up plugboards/ machine language를 썼다. assembly어도 없었음. problem domain이 calculation이었음. punch card가 나오면서 개선됨. 카드에 programming이 가능해짐. 1.2.2 2세대 트랜지스터,배치 시스템. 처음에는 designer, builder, operator, programmer, mainternance personnel이 따로 있었음. 기계는 에어컨이 있는 방에 잠겨있고 전문적인operator만이 이들을 운영할수 있었다. job(프로그램)을 실행하기위해서 프로그래머는 종이에 프로그램을 적고(fortran, assembler), 카드로 펀치하고 input room에 카드를 올려놓고 operator에게 넘겨준다. operator는 현재 진행중인 job이 무엇이건간에 끝나면 printer로 가서 output을 찢어와서 프로그래머가 가져갈수 있게 output room에 가져다 놓는다. 혹은 input room에 가져왔던 card를 가져와 read할수도 있다.fortran compiler가 필요하면 operator는 파일 캐비넷에서 꺼내와 read할수도 있다. 대부분의 컴퓨터에서 낭비된는 시간의 대부분은 operator가 기계실을 왔다갔다 하는 시간이다. -> solution이 batch system이다. 기본개념은 input room에서의 full of job을 한데 모으는것이다. IBM1401같은 상대적으로 저가의 컴퓨터로 Card를 tape로 모음. IBM7094같은 상대적으로 고가의 컴퓨터가 input tape읽어서 ouput tape으로 출력함. job을 모으면 tape을 되감아서 mount할 tape drive가 있는 곳으로 가져옴. operator는 특수한 프로그램을 로드해놓고(지금의 OS) 처음 작업을 tape에서 읽어와서 실행한다. output은 printer대신 second tape에 write한다. 각 작업이 끝나면 OS가 테입에서 다음작업을 자동으로 읽고 실행한다. batch작업이 끝나면 operator가 input, output tape을 제거하고 다음작업을 할 input tape으로 교체하고, output tape은 프린터가 있는 off line으로 된 1401로 가져간다. $JOB $FORTRAN --Fortran Program-- $LOAD $RUN --Data for Program-- $END fortran/assemply ,과학,공학계산(편미분방정식) FMS, IBSYS 등의 OS 1.2.3 3세대 IC/MultiProgramming 60년대에 1401, 7094같은 2개의 다른 product line , incompatible 1- word oriented 계산용 2. character oriented -tape sorting, printing 용 IBM System/360 -> 1401-size 부터 7904보다 powerful한것에 이르는 범위의 호환시리즈를 만듬., 오직 가격과 perfomance만 다르도록 만듬.(최대 memory, 프로세서 속도, I/O 허용 개수) 적어도 이론상으로는 같은 architecture와 instruction set을 가지도록.. single family로 모든 customer의 요구에 만족함. 370, 4300, 3080, 3090 -> 다른 모든 major manufacturer도 이 idea를 채용함. family의 단점-> OS를 포함한 software의 문제. 1401같은 작은 system에서도 돌아야 한다. 장치가 적은 시스템에서도 잘 돌아야 하고 장치가 많은 system에서도 잘 돌아야 한다. commercial환경에서도 , scientific 환경에서도 잘 돌아야 한다. 각기다른 사용에 대해서 모두 만족스러운 성능을 내야 한다. FMS보다 몇배 복잡하고 거대한 OS가 탄생했다 OS/360 3세대 techniq 1. multiprogramming techniq CPU-bound job IO-bound job Delay가 IO에서 8,90%가 남. 그동안 CPU가 놀고 있으므로 memory를 조각내어 각 partition에 서로 다른 job을 올려놓고 한 job이 IO를 기다리는 동안 다른 job이 CPU를 사용하도록 하는것. 2. spooling card를 computer room으로 가져오자마자 disk로 job을 read하는 능력이 있음. 하나의 job이 빈 memory partition을 disk에서 읽어와서 채움. 비록 calculation, commercial둘다 well-suited하기는 하지만 기본적으로 batch이기때문에 프로그래머에게는 각각에게 1세대 환경과 크게 다르지 않다. comma error하나 나오면 반나절을 기다려야 할정도로 debug를 빨리 할수 없다. 3세대에서 job을 submit해서 get back할때까지 몇시간이 걸린다. -> 빠른 응답을 위해서 나온 방법이 timesharing이다. terminal에 연결된 사람중 20에 17은 얘기하거나 커피마시는 시간이 대부분임 timesharing은 하드웨어 제약때문에 popular하지는 않았음. 전기 분배 시스템을 모델로함. 멀틱스는 computer literature에 많은 개념을 제공했지만 컴퓨터 가격이 폭락하면서 실패했다. 3세대의 또하나의 발전은 미니컴퓨터의 성장이다. DEC PDP 1이 고성느의 저가로 불티나게 팔렸다.non numerical work에서 7094만큼 빨랐고 PDP시리즈가 나왔다(IBM과는 달리 비호환) Ken Thompson이 MULTICS의 single user 버전을PDP 7용으로 만들었고 후에 UNIX가 되었다. 소스가 널리 퍼져서 다양한 버전이 나와서 한번 작성한 코드가 모든 유닉스에서 돌아가도록 하기 위해 POSIX 표준을 만들었다. 4세대 MSDOS/Unix NOS/분산OS NOS는 single processor OS에서 기본구조에서 별 차이가 없고, 리모트 로긴 , 리모 트 파일엑세스를 위한 프로그램과 인터페이스 카드와 로우레벨 프로그램이 필요함. 분산OS에서는 user가 프로그램의 파일이 여러곳에 있는지, 알지 못함. OS가 자동으로 처리해줌. true 분산 OS에서는 통신 delay로 인산 incomplete, outdate, incorrect information등을 처리해주는 알고리즘과 parallelism을 위한 부분이 uniprocessor OS와 다름. |
Programming