- 한가지기종의시스템에전문적인기능을가지도록설계 (X) 7. 운영체제세대별발달과정 4. 컴파일러, 인터프리터 Check 1. 운영체제개념 1. 운영체제이해하기(operation System) - 컴퓨터시스템자원을효율적으로관리하고사용자가편리하게사용하는환경을제공하는 S/W * 컴퓨터부팅순서 2. 운영체제가자원들을관리하는과정 1) 시스템내모든자원들의상태파악 2) 어떤프로세스에게언제, 어떤자원을할당할것인가를결정하는분배정책수립 3) 자원을배당하고운영함으로써수립된정책을수행 4) 프로세스에배당된자원회수 1 세대) 일괄처리시스템 (Batch Processing System) -> 가장먼저생겨난방식 : 유사한성격의작업을한꺼번에모아서처리 2 세대) 다중프로그래밍 (Multi Programming) -> 처리량의극대화 : 한대컴퓨터, 여러프로그램들실행 3. 운영체제계층구조 (= 관리작업) 하드웨어-CPU관리-기억장치관리-프로세스관리-주변장치관리-파일시스템관리-사용자프로세스 4. 운영체제종류 : MS-DOS, MS-Windows, UNIX, Linux 5. 운영체제기능적분류-제어프로그램 - 시스템전체의작동상태감시, 작업의순서지정, 작업에사용되는데이터관리등의역할을수행하는 P/G 2 세대) 시분할시스템 (Time Sharing System) -> 응답시간의최소화 : 여러명의사용자가사용하는시스템에서컴퓨터가사용자들의프로그램을번갈아가며처리해줌으로서각사용자가각자독립된컴퓨터를사용하는느낌을주는시스템 2 세대) 다중프로세싱 (Multi Processing) : 한대의컴퓨터에중앙처리장치(CPU) 가 2개이상설치, 여러프로그램들실행 차이점 구분 컴파일러 인터프리터 공통점 고급언어 기계어 번역단위 전체를번역 줄단위로번역 목적p/g 생성여부 생성 O 생성 X 실행속도 빠르다 느리다. 5. 어셈블러 2. 운영제체의정의, 목적, 기능, 역할 - 사용자와컴퓨터간의인터페이스를제공하는소프트웨어 - 자원의효율적인스케줄링 ( 프로세서, 기억장치, 주변장치, 파일관리) - 데이터공유및주변장치관리 - 처리능력(Throughput), 신뢰도, 사용가능도향상 - 응답시간, 반환시간(Turn Around Time) 단축 - 입/ 출력장치와사용자프로그램을제어 - 스스로어떤유용한기능도수행하지않고다른응용프로그램이유용한작업을할수있도록환경마련 - 시스템사용도중발생하는내부, 외부적인오류로부터시스템을보호 - 컴퓨터자원들인기억장치, 프로세서, 파일및정보, 네트워크및보호등을효율적으로관리할수있는프로그램의집합 - 오류검사및복구기능 - 컴퓨터를초기화시켜작업(JOB) 을수행할수있는상태로유지시키는역할 - 운영체제이외의프로그램들은운영체제가제공한기능에의존하여컴퓨터시스템의자원에접근 - 응용프로그램유지보수 (X) - 실행가능한목적(object) 프로그램생성(X) -> 컴파일러인터프리터 1) 감시프로그램 (Supervisor Program) 2) 작업제어프로그램 (Job Control Program) : 어떤업무를처리하고다른업무로의이행을자동적으로수행하기위한준비및그처리완료를담당하는기능을수행한다. 즉, 작업의연속처리를위한스케줄및시스템자원할당등을담당한다. 3) 데이터관리프로그램(Data Management Program) : 주기억장치와보조기억장치사이의자료전송, 파일의조작및처리, 입/ 출력자료와프로그램간의논리적연결등, 시스템에서취급하는파일과데이터를표준적인방법으로처리할수있도록관리 6. 운영체제기능적분류-처리프로그램 -제어프로그램의지시를받아사용자가요구한문제를해결하기위한프로그램 1) 서비스프로그램 (Service Program) : 효율성을위해사용빈도가높은 P/G 2) 문제프로그램 (Problem Program) : 특정업무해결을위해사용자가작성한 P/G 3) 언어번역프로그램 (Language Translator Program) : 어셈블러, 컴파일러, 인터프리터 * 주의: 언어번역프로그램은선택적이다. 2 세대) 실시간시스템 (Real-Time System) : 한정된시간제약조건에서자료를분석하여처리 (ex. 비행기제어시스템, 교통제어) 3 세대) 다중모드(mode) 시스템 :1,2세대혼합시스템 4 세대) 분산처리시스템 (Distributed Processing System) : 여러대의컴퓨터들에의해작업들을나누어처리, 그내용이나결과를통신망을이용하여상호교환 Check 2. 시스템소프트웨어종료 1. S/W 분류 1) 시스템 S/W : 제어프로그램, 처리프로그램 2) 유틸리티 : 압축, 디스크관리, 백신등프로그램 3) 응용 S/W : OA 용, 통신용, 그래픽, 멀티미디어등프로그램 2. 시스템소프트웨어 : 시스템전체를작동시키는프로그램 ( 시스템소프트웨어= 운영체제+ 언어번역P/G 등) 2) 종류 - 언어번역 P/G : 어셈블러, 컴파일러, 인터프리터 - 메모리에프로그램을적재 P/G : 로더 - 반복되는부분을한개의이름으로묶어사용 : 매크로프로세서 3. 언어번역및실행과정 - 원시(source)p/g 번역 목적(object)p/g생성 Link Lode 실행 -1- -2- -어셈블리어( 저급언어) 로작성된 P/G을기계어로번역해주는프로그램 1) 번역방식 -1Pass: 신속하지만어렵다. -2Pass: 느리지만쉽다. 프로그램작성이용이 2) 두개의패스(Pass) 로구성하는이유 -한개의패스만을사용하면기호를모두정의한뒤에해당기호를사용해야만하기때문 -기호를정의하기전에사용할수있어프로그램작성이용이하기때문에 6. 로더 -목적 P/G을주기억장치에적재하여실행가능하도록해주는시스템프로그램 1) 기능 : 할당(Allocation), 연결(Link), 재배치(Relocation), 적재(Load) - Compile (X) 2) 종류 - Compile-and-Go 로더 : 번역기가로더의역할까지담당 ( 번역+ 로더) - 절대(Absolute) 로더 : 적재기능만하는간단한로더 ( 할당, 연결- 프로그래머, 재배치- 언어번역기) - 직접연결로더 (Direct linking loader) : 가장일반적 ( 전체기능) 3) 링커(Linkage Editor, 연결편집기) : 목적프로그램등을연결하여실행가능한로드모듈을만드는프로그램
7. 매크로프로세서 1) 처리과정 : 매크로정의인식 매크로정의저장 매크로호출인식 매크로호출확장 2) 특징: 매크로내에매크로를정의할수있다. 3) 매크로( 개방형) 와부프로그램( 폐쇄형) 차이점 : 매크로내용삽입 M/M 절약 X, 실행빠르다. Check 3. 프로세스개요 - 각프로세스가생성될때마다 PCB 가생성되고, 완료되면 PCB는제거 -O/S에게 Process에대한정보를제공해주는자료구조테이블 - 부모프로세스와자식프로세스는 PCB 를공유 (X) 4. 프로세서제어블록- 저장정보 - 프로세스의현상태 - 프로세스의우선순위 - 프로세스식별자 - 레지스터저장장소 - 할당된자원에대한포인터 - 관련레지스터정보 - 프로세스의사용빈도(X), 할당되지않은주변장치의상태정보 (X) - 모든프로세스의상태에대한조사와통제정보 (X) - 파일할당테이블(FAT) (X), 우선순위를위한스케줄러 (X) - 페이지부재(page fault) 발생횟수(X) - 프로세스오류의수정방법(X) - 프로세스의 CPU 사용율 (X), 프로세스의처리기종류 (X) - 초기값정보 (X), 프로세스의크기 (X) 프린터로보내지않고디스크에모았다가나중에한꺼번에출력함으로써프린터장치의공유및프린터처리속도를보완하는기법 - 어떤작업의입/ 출력과다른작업의계산을병행처리하는기법 - 스풀링은디스크일부를매우큰버퍼처럼사용하는방법 7. 인터럽트 1) 프로그램검사(Program Check) 인터럽트 - 일괄처리( 오버헤드발생 X), 실시간처리가안되므로중요한작업이기다리는경우발생 - 대표적인스케줄링 :FIFO,SJF,HRN 2) 선점스케줄링 ( 양보) : 효율적 - 우선순위가높은다른프로세스가할당된 CPU를강제로빼앗을수있는방법 - 실시간처리, 대화식시분할처리( 오버헤드발생 O) - 대표적인스케줄링 : RR, SRT Check 5. 프로세스스케줄링- 비선점 1. FIFO (First-In First-Out) = FCFS (First-Come First-Service) -준비상태에서도착한순서에따라 CPU 할당 1. 프로세스(Process) 정의 - 주기억장치에저장된프로그램( 실행중인프로그램) - 운영체제가관리하는최소단위의작업 - 비동기적( 비연속적) 행위를일으키는주체 - 프로시저( 프로그램일부) 의활동 -PCB를가진프로그램 - 프로세서가할당되는실체 - CPU에의해수행되는사용자및시스템프로그램 - 프로세스가자원을이용하는정상적인작동의순서 : 요청 -> 사용 -> 해제 - 지정된결과를얻기위한일련의동작 - 디스크( 보조기억장치) 에저장된프로그램 (X) - 하드웨어에의해사용되는입/ 출력장치 (X) 5. 프로세스상태전이도 : 수행중인프로그램에서 0으로나누는연산이나허용되지않는명령어의수행, 스택의오버플로우(overflow) 등과같은잘못이있을때발생 2) SVC(Super Visor Call) 인터럽트 = 감시자( 운영체제) 호출 - 프로세서에게컴퓨터제어권을운영체제수퍼바이저프로그램에넘길것을지시 : 입/ 출력수행, 기억장치할당, 오퍼레이터와의대화등을위하여발생 3) 기계검사인터럽트 : 컴퓨터자체내의기계적인장애나오류로인하여발생 4) 외부인터럽트 2. SJF (Shortest Job First) - 작업이끝나기까지의실행시간추정치가가장작은작업을먼저실행 - FIFO 보다평균대기시간이작지만긴작업의경우 FIFO 기법보다더크고예측이더욱어렵다 - 작업시간이큰경우오랫동안대기하여야한다 : 시스템타이머에서일정한시간이만료된경우나오퍼레이터가콘솔상의인터럽트키를입력한경우발생 2. 스래드(Thread) 정의 - 프로세스를분할하여운영체제의성능을개선하려는소프트웨어적접근방법 - 하나의프로세스내에서병행성을증대시키기위한기법 - 스레드는동일프로세스환경에서서로독립적인다중수행이가능하다 - 프로세스의생성이나문맥교환등의오버헤드를줄여운영체제의성능이개선된다. 3. 프로세스제어블록: PCB(Process Control Block) - 운영체제가프로세스에대한중요한정보를저장해놓은곳 ( 프로세스정보리스트) - 실행상태(Run) : 프로세스가 CPU를차지하여실행중인상태 - 타이머런아웃 : CPU를할당받아실행중인프로세스가할당시간을초과하면 CPU를다른프로세스에게양도하고자신은준비상태로전이되는것 - 준비상태(Ready) : 프로세스가CPU를사용하여실행될수있는상태 - 대기상태(Wait, Block) : 어떤사건이발생하기를기다리는상태 - 블록 : 실행중인프로세스가지정된시간이전에다른작업을위해스스로프로세서를양도하고대기상태로전이되는것 6. 스풀링(spooling) - 다중프로그래밍환경하에서용량이크고신속한액세스가가능한디스크를이용하여각사용자프로그램의출력할데이터를직접 Check 4. 프로세스스케줄링 1. 프로세스스케줄링(=CPU 스케줄링) - 정의 : 컴퓨터시스템의성능을높이기위해그사용순서를결정하기위한정책 - 목적( 성능평가) : 처리율증가, CPU 이용률증가, 우선순위제도, 오버헤드( 부하) 최소화, 응답시간 / 반환시간 / 대기시간최소화, 균형있는자원의사용, 무한연기회피 2. 프로세스스케줄링기법 1) 비선점스케줄링 (Non Preemptive) : 비효율적, 비양보 - 프로세스에게이미할당된 CPU 를강제로빼앗을수없고, 사용이끝날때까지기다려야하는방법 -3- -4-
3. HRN (Highest response ratio Next) - SJF 방식의단점( 긴작업과짧은작업간의지나친불평등) 을보완하는기법 - 우선순위계산식 : ( 대기시간+ 서비스시간)/ 서비스시간 * 그외비선점스케줄링 - 우선순위 : 대기큐에서기다리는각프로세스마다우선순위를부여하여그중가장높은프로세스에게먼저 CPU를할당하는기법 - 기한부 : 프로세스에게일정한시간을주어그시간안에프로세스를완료하도록하는기법 : 여러개의큐를두어낮은단계로내려갈수록프로세스의시간할당량을크게하는프로세스스케쥴링방식 Check 7. 프로세스스케줄링- 기타 1. 문맥교환 (Context switching) : 다중프로그래밍시스템에서운영체제에의하여중앙처리장치가할당되는프로세스를변경하기위하여현재중앙처리장치를사용하여실행되고있는프로세스의상태정보를저장하고, 앞으로실행될프로세스의상태정보를설정한다음에중앙처리장치를할당하여실행이되도록하는작업을의미하는것 -> 운영체제에서 overhead의큰요인중하나 2. 노화(aging) 기법 : 자원이할당되기를오랜시간동안기다린프로세스에대하여기다린시간에비례하는높은우선순위를부여하여가까운시간안에자원이할당되도록하는기법 -> 우선순위스케줄링에서무한연기를방지하기위한기법 2. 임계구역(Critical Section) : 다중프로그래밍운영체제에서한순간에여러개의프로세스에의하여공유되는데이터및자원에대하여, 한순간에는반드시하나의프로세스에의해서만자원또는데이터가사용되도록하고, 이러한자원이프로세스에의하여반납된후비로소다른프로세스에서자원을이용하거나데이터를접근할수있도록지정된영역 ( 하나의프로세스만자원을이용할수있도록보호된영역) 2) 특징 - 특정프로세스가독점할수없다. - 프로세스가임계구역에대한진입을요청하면일정시간내에진입을허락해야한다. -ex) 사무실에서공유프린터( 임계구역) 으로정해서한명의사원 ( 프로세스이독점해서사용하지않도록할수있다 ). 3. 상호배제(Mutual Exclusion) : 한프로세스가공유메모리혹은공유파일을사용하고있을때다른프로세스들이사용하지못하도록배제시키는제어기법 5. 동기화기법 - 모니터(Monitor) - 모니터 : 임계구역과유사한개념 - 동기화를구현하기위한특수프로그램기법으로특정공유자원을프로세스에게할당하는데필요한데이터와이데이터를처리하는프로시저로구성됨 - 자료추상화와정보은폐개념을기초로하며공유자원을할당하기위한병행성구조 - 모니터내의공유자원을사용하려면프로세스는반드시모니터의진입부를호출해야함 - 외부의프로세스는직접액세스할수없으며, 모니터의경계에서상호배제가시행됨 - 한순간에하나의프로세스만진입하여자원을사용할수있음 - 모니터에서사용되는연산은 Wait와 Signal 이있다. Check 6. 프로세스스케줄링- 선점 1. RR (Round Robin) - 대화식시분할시스템(Time Sharing System) 을위해고안된방식으로, FIFO 방식으로선점형기법 - 할당되는시간이클경우 FCFS 기법과같아지고, 할당되는시간이작을경우문맥교환및오버헤드가자주발생됨 2. SRT (Shortest Remaining Time) -SJF 방식으로선점형기법, 현재실행중인프로세스의남은시간과준비상태큐에새로도착한프로세스의실행시간을비교하여가장짧은실행시간을요구하는프로세스에게 CPU를할당하는기법 Check 8. 병행프로세스와교착상태 1. 병행프로세스(Concurrent) : 두개이상의프로세스들이동시에존재하며실행상태에있는것 2) 병행프로세스의문제점 - 동시에 2 개이상의프로세스를병행처리하면한정된자원(CPU, 메모리, 디스크, I/O 장치등) 에대한사용순서등여러가지문제가발생할수있다. ( 다중프로그래밍기법이용으로병행성문제생김) -ex) 사무실에서공유프린터사용시사용순서에따라출력되지않을경우출력물은섞여진다. - 문제해결책 : 임계구역, 상호배제기법, 동기화기법 2) 데커(Dekker) 알고리즘 - 교착상태가발생하지않음을보장 - 공유데이터에대한처리에있어서상호배제를보장 - 별도특수명령어없이순수하게소프트웨어로해결된다. 4. 동기화기법 - 세마포어(Semaphore) - 세마포어 : 신호기, 깃발 - 각프로세스에제어신호를전달하여순서대로작업을수행하도록하는기법 - 다익스트라(Dijkstra) 가제안 -P와 V라는 2 개의연산에의해서동기화를유지시키고, 상호배제의원리를보장 -P연산은임계영역을사용하려는프로세스들의진입여부를결정하는조작 (Wait 동작, S = S-1) -V 연산은블록큐에대기중인프로세스를깨우는신호(WakeUp) (Signal 동작, S = S+1) - S는 P와 V 연산으로만접근가능한세마포어변수( 제어신호) 로, 공유자원의개수를나타내며 0( 사용중) 과 1( 사용가능) 혹은 0과양의값을가질수있음 6. 교착상태(Dead Look): 예측못한다운 : 상호배제에의해나타나는문제점으로, 둘이상의프로세스들이자원을점유한상태에서서로다른프로세스가점유하고있는자원을요구하며무한정기다리는현상 7. 교착상태발생 4 가지필요충분조건 ( 동시만족시발생) * 그외선점스케줄링 - 다단계큐 (MQ, Multi level Queue) : 프로세스들을우선순위에따라시스템프로세스, 대화형프로세스, 일괄처리프로세스등으로상위, 중위, 하위단계의단계별준비큐를배치하는 CPU 스케줄링기법 - 다단계피드백큐 (MFQ, Multi level Feedback Queue) * 임계구역 : 하나의프로세스만자원을이용할수있도록보호된영역 * 상호배제기법 : 임계구역을지키기위한알고리즘( 기법) * 동기화기법 : 상호배제의원리를보장하는데사용 - 두개이상의프로세스에대해특정한시점에대해서동시에처리할수없으므로각프로세스에대한처리순서를결정하는기법 ( 세마포어, 모니터) 1) 상호배제(Mutual Exclusion) : 한번에한개의프로세스만이공유자원을사용할수있어야함 2) 점유와대기(Hold & Wait) : 최소한하나의자원을점유하고있으면서다른프로세스에할당되어사용되고있는자원을추가로점유하기위해대기하는프로세스가있어야함 3) 비선점(nonpreemption) : 프로세스에할당된자원은사용이끝날때까지강제로빼앗을수없음 4) 환형대기(Circular Wait) : 공유자원과공유자원을사용하기위해대기하는프로세스들이원형으로구성되어있어자신에게할당된자원을점유하면서앞이나뒤에있는프로세스의자원을요구해야함 -5- -6-
8. 교착상태해결방안 Check 9. 기억장치관리기법- 주기억장치 4. 단일분할할당( 단일프로그래밍) 1) 예방기법(Prevention) : 교착상태가발생되지않도록사전에시스템을제어하는방법으로, 교착상태발생의 4가지조건중에서상호배제를제외한어느하나를제거( 부정) 함으로써수행됨 1. 기억장치관리전략 1) 반입(Fetch) 전략 1) 스와핑(Swapping) - 하나의프로그램전체를주기억장치에할당하여사용하다필요에따라다른프로그램과교체하는기법 - 상호배제부정 : 여러프로세스가공유자원을이용 ( 사용 X) - 비선점부정 : 선점 - 점유와대기부정 : 프로세스가실행되기전필요한모든자원을점유하여프로세스대기를없앰 - 환형대기부정 : 자원을선형순서로분류하여각프로세스는현재어느한쪽방향으로만자원을요구하도록하는것 - 해결방안중자원의낭비가가장심함 2) 회피기법(Avoidance) : 교착상태해결방안으로발생가능성을인정하고교착상태가발생하려고할때, 교착상태가능성을피해가는방법, 주로은행원알고리즘(Banker's Algorithm) 이사용됨 * 은행원알고리즘 - 다익스트라(Dijkstra) 가제안한회피(Avoidance) 기법 - 각프로세스에게자원을할당하여교착상태가발생하지않으며모든프로세스가완료될수있는상태를안전상태, 교착상태가발생할수있는상태를불안전상태라고함 [ 기출문제풀이] - 자원이총 12 개이고, 현재할당된양이 10개일경우아래시스템을안전상태가되기위한A,B? - 보조기억장치의프로그램이나데이터를언제주기억장치로적재할것인지를결정 2) 배치(Placement) 전략 - 주기억장치의어디에위치시킬것인지를결정 1 최초적합(First Fit) : 첫번째배치시키는방법 ( 속도, 공간 ) 2 최적적합(Best Fit) : 단편화를가장작게남기는분할영역에배치시키는방법 ( 속도, 공간 ) 3 최악적합(Worst Fit) : 단편화를가장많이남기는분할영역에배치시키는방법 ( 속도, 공간 ) 3) 교체(Replacement) 전략 - 주기억장치의모든영역이이미사용중인상태에서주기억장치에배치하려고할때, 이미사용되고있는영역중에서어느영역을교체하여사용할것인지를결정 (FIFO,OPT,LRU,LFU,NUR,SCR) [ 기출문제] First Fit, Best Fit, Worst Fit 방법에대해서 10K 프로그램이할당부분? 2. 단편화해결방법 1) 통합(Coalescing) 기법 2) 오버레이(Overlay) -실행되어야할작업의크기가커서사용자기억공간에수용될수없을때작업의모든부분들이동시에주기억장소에상주해필요가없다. 이때작업을분할하여필요한부부만교체하는방법 5. 다중분할할당( 다중프로그래밍) 1) 고정분할 - 주기억장치를미리몇개의고정된개수와크기의부분으로분할하여여러개의여러개의프로그램이동시에적재되어실행되게하는방법 Check 10. 기억장치관리기법- 가상기억장치 1. 가상기억장치개요 - 보조기억장치의일부분을주기억장치처럼사용하는것 - 용량이적은주기억장치를마치큰용량이있는것처럼사용하는것 - 프로그램을여러개의작은블록으로나누어서, 프로그램실행시요구되는블록만주기억장치에불연속적으로할당하여처리 - 주기억장치보다용량이큰프로그램실행하기위해사용 - 가상기억장치에저장된프로그램을실행하려면가상기억장치의주소를주기억장치의주소로변환하는작업이필요 ( 매핑) 2. 가상기억장치구현기법 3. 페이징 (Paging) 기법 - 가상기억장치에보관되어있는프로그램과주기억장치의영역을동일한크기로나눈후나눠진프로그램 ( 페이지) 을동일하게나눠진주기억장치의영역( 페이지프레임) 에적재시켜실행하는기법 - 주소변환(Mapping) : 가상주소( 보조기억장치)-> 실주소( 주기억장치) - 주소변환을위해페이지맵핑테이블( 페이지사상표) 이필요 => 기억장소낭비 - 페이지부재(Page Fault) :P/G실행시참조한페이지가주기억장치에없는현상 - 외부단편화(X), 내부단편화(O) A=6, B=2 로할당되면안전상태를유지할수있다. 3) 발견기법(Detection) : 시스템에교착상태가발생했는지점검하여교착상태에있는프로세스와자원을발견하는것 4) 회복기법(Recovery) : 교착상태를일으킨프로세스를종료하거나교착상태의프로세스에할당된자원을선점하여프로세스나자원을회복하는것 - Ctrl+Alt+Del => 작업관리자 => 프로세스끝내기 : 주기억장치내에인접해있는단편화된공간을하나의공간으로통합 2) 집약(Compaction) 기법, 압축, 쓰레기수집(Garbage Collection) : 주기억장치내에분산되어있는단편화된빈공간을결합하여하나의큰가용공간을만드는작업 3. 주기억장치할당기법 2) 가변분할 - 고정분할할당기법의단편화를줄이기위한것으로, 미리주기억장치를분할해놓는것이아니라프로그램을주기억장치에적재하면서필요한만큼의크기로영역을분할하는기법 ex) 식당전체공간에서칸막이를이용해서손님의수에따라자리를만들어줌 * 페이지크기가작을경우 (10K -> 1K) - 페이지수증가 -> 페이지맵핑테이블커진다 -> 맵핑속도느리고기억공간낭비발생 - 디스크접근횟수증가 전체적인입출력시간은늘어남 - 한개의페이지를주기억장치로이동하는시간이줄어듦 - 필요한내용만주기억장치에적재 유용도大 기억장치효율이높아짐 ( 내부단편화감소) -7- -8-
4. 세그먼테이션((Segmentation) 기법 - 가상기억장치에보관되어있는프로그램을다양한크기의논리적인단위로나눈후주기억장치에적재시켜실행시키는기법 => 메모리절약 - 논리적인크기로나눈단위를세그먼트라고하며, 각세그먼트는고유한이름과크기를갖고있음 - 다른세그먼트에게할당된영역을침범할수없으며, 이를위해기억장치보호키(Storage Protection Key) 가필요함 - 외부단편화(O), 내부단편화(X) Check 11. 페이지교체알고리즘 1. 페이지교체(Replacement) 알고리즘 - 페이지부재(page fault) 가발생하였을경우, 가상기억장치의필요한페이지를주기억장치의어떤페이지프레임을선택, 교체해야하는가를결정하는기법 4. LRU (Least Recently Used) - 최근에가장오랫동안사용하지않은페이지를교체하는기법 - 각페이지마다계수기를두어현시점에서볼때가장오래전에사용된페이지를교체 2) 종류 5. 가상기억장치의성능에영향을미치는요인 1) 워킹셋 (Working Set) - 프로세스가일정시간동안자주참조하는페이지들의집합으로, 자주참조되는워킹셋을주기억장치에상주시킴으로써페이지부재및페이지교체현상을줄임 -OPT (OPTimal replacement, 최적교체), FIFO (First In First Out), LRU (Least Recently Used), -LFU (Least Frequently Used), NUR (Not Used Recently) 2. FIFO (First In First Out) - 가장먼저들여온페이지를먼저교체시키는방법 ( 주기억장치내에가장오래있었던페이지를교체) - 벨레이디의모순(Belady's Anomaly) 현상 : 페이지프레임수가증가하면페이지부재가더증가 5. LFU (Least Frequently Used) - 사용횟수가가장적은페이지를교체하는기법 6. NUR (Not Used Recently) - 최근에사용하지않은페이지를교체하는기법 - " 근래에쓰이지않은페이지들은가까운미래에도쓰이지않을가능이높다." 라는이론에근거 - 각페이지마다 2 개의하드웨어비트( 호출비트, 변형비트) 가사용됨 3. SSTF (Shortest Seek Time First) -FCFS 보다처리량이많고평균응답시간이짧다 - 탐색거리가가장짧은트랙에대한요청을먼저서비스하는기법 -디스크스케줄링기법중에서현재헤드위치의가까운곳에있는모든요구를먼곳보다먼저처리 - 탐색시간편차 : 안쪽이나바깥쪽트랙이가운데트랙보다서비스를덜받는경향 -> 헤드에서멀리떨어진요청은기아상태(starvation) 가발생할수있다. -> 응답시간의편차가크므로대화형시스템에는부적합 - 처리량이많은일괄처리시스템에유용 2) 스래싱 (Thrashing) - 프로세스의처리시간보다페이지교체시간이더많아지는현상 -> CPU 이용률저하 - 페이지오류율(page fault) 이크면스래싱이많이일어난것이다 - 다중프로그래밍의정도가높을수록스래싱의발생빈도는높아진다 - 스래싱방지방법 : 다중프로그래밍의정도를줄인다, CPU 이용률을높인다,Workingset방법을사용 3) 구역성 (Locality, 국부성) : 참조국부성(locality of reference) - 프로세스가실행되는동안일부페이지만집중적으로참조하는성질 1 시간구역성 - 최근에참조된기억장소가가까운장래에도계속참조될가능성이높음 예)Loop( 반복), 스택, 부프로그램(Sub Routine), 카운팅(Counting), 집계(Totaling) 에사용되는변수 2 공간구역성 - 하나의기억장소가참조되면그근처의기억장소가계속참조될가능성이높음예) 순차적코드( 수행) 실행, 배열순회, 같은영역에있는변수참조 3. OPT(OPTimal replacement) 최적교체 Check 12. 디스크스케줄링 1. 디스크스케줄링( 보조기억장치) : 사용할데이터가디스크상의여러곳에저장되어있을경우데이터를액세스하기위해디스크헤더가움직이는경로를결정하는기법 2) 목적 : 처리량의최대화, 응답시간의최소화, 응답시간편차의최소화 3) 종류 :FCFS,SSTF,SCAN,C-SCAN기법등 2. FCFS(First-Come First-Service) 4. SCAN 한방향으로가장짧은거리 - SSTF가갖는탐색시간의편차를해소하기위한기법 - 현재진행중인방향으로가장짧은탐색거리에있는요청을먼저서비스 - 현재헤드의위치에서진행방향이결정되면탐색거리가짧은순서에따라그방향의모든요청을서비스하고, 끝까지이동한후역방향의요청사항을서비스함 => 끝까지이동하지않을경우(LOOK 기법) - 디스크스케줄링기본전략 -앞으로가장오랫동안사용하지않을페이지를교체하는기법 ( 실현가능성X) - 입출력요청대기큐에들어온순서대로서비스를하는방법 -9- -10-
Check 13. 파일관리 - 직접접근기억장치의물리적구조에대한지식이필요하다. - 판독이나기록의순서에는제약이없다. 5. C-SCAN (Circular SCAN) 바깥-> 안가장짧은거리 - 항상바깥쪽에서안쪽으로움직이면서가장짧은탐색거리를갖는요청을서비스 - 디스크스케줄링기법중가장안쪽과가장바깥쪽의실린더에대한차별대우를없앤기법 - 헤드는트랙의바깥쪽에서안쪽으로한방향으로만움직이며서비스하여끝까지이동한후, 안쪽에더이상의요청이없으면헤드는가장바깥쪽의끝으로이동한후다시안쪽으로이동하면서요청을서비스함 => 끝까지이동하지않을경우(C-LOOK 기법) 1. 파일시스템특징 1) 파일특성을결정하는기준 - 소멸성(Volatility) : 파일추가제거빈도수 / - 활성률(Activity) : 프로그램한번수행시처리되는레코드수의백분율 - 크기(Size) : 파일의정보량 2) 파일시스템의기능 - 사용자가파일을생성, 수정, 제거할수있도록한다. - 적절한제어방식을통해다른사람의파일을공동으로사용할수있도록한다. - 사용자가이용하기편리하도록사용자에게익숙한인터페이스를제공해야한다. - 정보의암호화와해독에대한기능을제공한다. - 불의의사태에대비한예비(backup) 와복구(recovery) 능력을갖추어야한다. - 파일의무결성과보안을유지할수있는방안제공 - 번역기능 (X) 2. 파일구성방식: 데이터베이스 10 강자류구조( 파일편성) 과동일 Check 14. 파일디스크립터 1. 파일디스크립터 = FCB : File Control Block ( 파일제어블록) - 파일을관리하기위한시스템이필요로하는파일에대한정보를갖는제어블록 => 사용자직접참조 X - 파일이엑세스되는동안운영체제가관리목적으로알아야할정보를모아놓은자료구조이다 - 파일마다독립적으로존재, 시스템마다다른구조가짐 - 보통보조기억장치에저장되었다가파일이오픈될때주기억장치로전달 - 정보 : 생성날짜및시간, 위치, 액세스횟수, 이름, 구조, 크기, 접근제어, 수정시간 - 파일작성자 (X) - 오류에대한수정방법 (X) - 파일의백업방법 (X) Check 15. 디렉토리구조 1. 디렉토리구조 4) 비순환그래프구조 - 부디렉토리, 파일공유(O), 사이클(X) - 디스크공간을절약할수있음 - 하나의파일이나디렉토리가여러개의경로, 이름을가질수있음 3. 종류 1) 순차파일 - 적합한기억매체로는자기테이프를쓰면편리하다. - 필요한레코드를삽입하는경우파일전체를복사해야한다. - 기억장치의효율이높다. - 검색시에효율이나쁘다. ( 다음레코드접근이빠르다.) - 부가적인정보를보관하지않으므로불필요한공간낭비가없다. - 파일구성이쉽다. - 대화식처리보다일괄처리에적합한구조이다. 1) 1단계구조 - 가장간단하고, 모든파일이하나의디렉토리내에위치하여관리되는구조 - 관리불편 -> 모든파일명다르므로 2) 2단계구조 - 마스터 / 사용자파일디렉토리 - 서로다른디렉토리에서는동일한파일이름을사용할수있음 5) 일반그래프구조 - 트리구조에링크(Link) 를첨가 -> 순환(O) - 그래프탐색알고리즘이간단 - 원하는파일로접근이쉽다. 6. N-step SCAN -SCAN의무한대기발생가능성을제거한것으로SCAN보다응답시간의편차가적고,SCAN과같이진행방향상의요청을서비스하지만, 진행중에새로이추가된요청은서비스하지않고다음진행시에서비스하는디스크스케줄링 2) 색인순차파일 - 각레코드는레코드킷값에따라논리적으로배열된다. - 시스템은각레코드의실제주소가저장된인덱스를관리한다. - 일반적으로디스크기억장치에많이이용된다. - 색인구성 : 실린더색인, 트랙색인, 마스터색인 3) 직접파일 : 해싱등의사상함수를사용하여레코드키에의한주소계산을통해레코드를접근할수있도록구성한파일 - 적합한장치로는자기디스크를주로사용한다. - 직접접근기억장치의물리적주소를통해직접레코드에접근한다. - 키에일정한함수를적용하여상대레코드주소를얻고, 그주소를레코드에저장하는파일구조이다. 3) 트리구조 - 루트 / 종속( 서브) 디렉토리 -DOS,Windows,UNIX등의운영체제에서사용되는디렉토리구조 - 동일한이름의파일이나디렉토리를생성할수있음 - 디렉토리의생성과파괴가비교적용이함 Check 16. 여러가지기법 1. 디스크공간할당기법 1) 연속할당 ( 단일 P/G) - 논리적으로연속된레코드들이물리적으로서로인접하게저장 액세스시간감소 - 생성되는파일크기만큼의공간이있어야함 ( 외부단편화 O) 2) 불연속할당 ( 링크, 다중 P/G) - 프로그램적재효율적 ( 외부단편화 X) - 파일생성시파일의크기를알필요가없다 -11- -12-
- 섹터단위 - 블록단위 : 블럭체인, 인덱스블럭체인, 블럭단위파일사상 - 파일할당표(FAT) : 사용자가해당블록의포인트를실수로지워지게하는것을예방하고블록접근을빠르게하기위하여포인터를모아놓은곳 3. 파일보호기법 1) 파일의명명 (Naming) : 파일이름을모르는사용자를접근대상에서제외시키는기법 2) 비밀번호 (Password, 암호) : 각파일에판독암호와기록암호를부여하여암호를아는사용자에게만접근을허용하는기법 Check 17. 분산처리시스템 1. 컴퓨터시스템의구조 -Flynn이제안한 4가지병렬처리방식 1 SISD 2 SIMD( 배열, array) 3MISD( 실제구현X) 4 MIMD( 다중처리기, 다중컴퓨터) 2) 공유버스기법 - 버스로연결한방식 - 버스에이상이발생하면전체시스템이가동되지않음 - 증설절차가간단 2. 자원보호기법 : 컴퓨터시스템에서사용되는자원들( 파일, 프로세스, 메모리등) 에대하여불법적인접근방지와손상발생방지 1) 접근제어행렬(access control matrix) : 자원보호의일반적인모델로, 객체에대한접근권한을행렬로써표시한기법 2) 접근제어리스트(access control list) 접근제어행렬에서열( 객체) 중심 : 객체와그객체에허용된조작리스트이며, 영역과결합되어있으나사용자에의해간접적으로액세스되는기법 3) 접근제어 (Access Control) : 사용자의신원에따라서로다른접근권한을허용한다 ( 접근제어행렬응용) 4. 보안기법 1) 외부보안 : 불법침입자나천재지변으로부터시스템을보호하는것 - 시설보안 : 감지기능을통해외부침입자나화재, 홍수와같은천재지변으로부터의보안 2) 내부보안 : 하드웨어나운영체제의내장된기능 3) 사용자인터페이스보안 : 사용자의신원을운영체제가확인하는절차를통해불법침입자로부터보호 * 인증 : 컴퓨터시스템에서전송정보가오직인가된당사자에의해서만수정될수있도록통제하는것 * 백업 : 천재지변이나사고로인해정보의손실이나파괴를막기위해취할수있는방법 5. 암호화기법 1) 강결합 ( 다중처리기) - 여러개의처리기(CPU) 와하나의기억장치( 공유메모리) 를두어처리 - 프로세스간의통신은공유메모리를이용한다 - 메모리에대한프로세스간의경쟁최소화가고려되어야한다 - 가장복잡하지만가장강력한구조이다 - 프로세서의수를늘린다고해도시스템효율은향상되지않는다 - 운영체제가여러 CPU 간의기억장치를공유하기위한스케쥴링이복잡해진다 2) 약결합 ( 다중컴퓨터, 분산처리) - 여러개의처리기와독자적인기억장치(OS) 를두어통신회선을연결해서처리 - 둘이상의독립된컴퓨터시스템을통신링크를이용하여연결한시스템 - 기억장치공유 (X) 3) 크로스바교환행렬 - 버스의수를기억장치수만큼증가시켜연결한방식 3. 다중처리운영체제구성 1) Master/Slave( 주종 / ) 처리기 - 주프로세서 : 입출력과연산담당, 운영체제를수행 - 종프로세서 : 연산만담당, 사용자프로그램만담당 - 주프로세서가고장나면전체시스템다운 1) 비밀키시스템 (Private Key System, 개인키시스템) - 암호화키 = 복호화키 - 대칭암호화방식 : DES 2) 분리수행처리기 - 주/ 종처리기의비대칭성을보완하여각프로세서가독자적인운영체제를가짐 - 한프로세서가고장나더라도전체시스템이다운되지않음 3) 권한리스트(capability list) 접근제어행렬에서행( 영역) 중심 : 접근제어행렬에있는각행, 즉영역을중심으로구성한것으로서각사용자에대한자격들로구성되며, 자격은객체와그객체에허용된연산리스트 2) 공용키시스템 (Public Key System, 공개키시스템) - 암호화키 <> 복호화키 ( 비대칭암호화기법) - 대표적암호화방식 : RSA - 키의분배가용이하다. - 암호키는공개되어있어누구나사용할수있으나해독키는당사자만알고있다. - 암호화키와해독키가따로존재한다. 2. 처리기(Processor) 연결방식 1) 하이퍼큐브 - 연결점수가 n 이면프로세서의수는 2 n 개 3) 대칭적처리기 - 분리실행처리기구조의문제점을보완한것으로, 여러프로세서들이완전한기능을갖는하나의운영체제를공유 * 인증교환기법 : 수신자가메시지전송도중에변경되지않았음을확인할수있으며, 메시지가정당한상대방으로부터전달된것임을확인할수있는기법 -13- -14-
4. 분산처리시스템 1) 목적 ( 중앙집중형태에서분산처리시스템으로발전하게된이유) : 자원공유, 연산속도향상, 신뢰도향상, 컴퓨터통신 2) 특징 - 과부하를줄일수있고 - 점진적확장가능 : 특정한시스템병목현상을제거하기위해필요한자원을추가할수있으므로선택적인성능향상을가능 - 빠른반응시간 - 사용가능도가향상 : 다수의구성요소가존재하므로일부가고장나더라도나머지일부는계속작동가능 - 설계복잡 -> 소프트웨어개발이어렵다 - 보안문제가발생한다 - 공유자원에접근할경우시스템유지를위해제어를분산할필요가있다 - 처리기와입력장치와같은물리적인자원을분산할수있다 - 시스템성능과가용성을증진하기위해자료를분산할수있다 - 분산된노드들은통신네트워크를이용하여메시지를주고받음으로서정보를교환한다 - 투명성 - 기본비용은많이들지만통신비용은적게들고, 신뢰성이높음 - 사이트들간의메시지전달이매우빠르다 2) 계층형 (Hierarchy) = 트리형 - 분산처리시스템의가장대표적인형태 - 부모사이트가고장나면그자식사이트들은통신이불가능함 3) 성형 = 스타형 - 모든사이트가하나의중앙사이트에직접연결 - 중앙사이트가고장날경우모든통신이단절됨 4) 링형 = 환형 - 인접하는다른두사이트와만직접연결된구조 - 정보는단방향또는양방향으로전달될수있음 - 목적사이트에데이터를전달하기위해링을순환할경우통신비용이증가함 - 새로운노드를추가할경우통신회선을절단해야한다 5) 다중접근버스연결(Multi Access Bus Connection) 형 - 하나의공유버스에연결된구조 ( 물리적구조간단) - 사이트의고장은다른사이트의통신에영향을주지않지만, 버스의고장은전체시스템에영향을줌 - 노드의추가와삭제가용이하다. 러개의작업을병행처리할수있다 - 개방형시스템 : 구조공개, 제품의공급업자가많다, 라이센스비용이싸다 - 단일작업용, Stand alone 시스템 (X) * 파이프라인(pipeline) : UNIX에서두프로세스를연결하여프로세스간통신을가능하게하며, 한프로세스의출력이다른프로세스의입력으로사용됨으로써프로세스간정보교환이가능하도록하는것 ( 큐, FIFO) 2. 구성 1) 커널 (Kernel) -UNIX의가장핵심적인부분 - 주기억장치에적재된후상주하면서실행 - 프로세스, 기억장치, 파일, 입출력 관리 - 프로세스간통신, 데이터전송및변환등여러가지기능수행 - 파일시스템의접근권한을처리 - 자원활용도를높이기위해스케줄링 2) 쉘 (Shell) - 명령어해석기 - 시스템과사용자간의인터페이스담당 2) 파일등관련 -mount: 새로운파일시스템을서브디렉토리에연결 -ls: 디렉토리내용보기 ( 파일의조작과무관) -chmod: 파일의권한모드읽기 (, 쓰기, 실행) 설정 -> 파일의접근을제한 -cat: 파일내용을화면에표시 -&: 백그라운드처리를위해명령 ( 장점: 수행중인명령문이끝나기전에다른명령문을줄수있다) 3) 투명성 (Transparency) : 사용자가분산된여러자원의위치정보를알지못하고마치하나의커다란컴퓨터시스템을사용하는것처럼인식하도록한다 - 위치투명성 : 사용자는각컴퓨터들이어느곳에위치하는지몰라서자원을사용할수있다. - 이주투명성 : 자원이동에제한이없음 - 병행투명성 : 다중사용자들이자원들을자동으로공유할수있다 - 복제투명성 : 사용자에게통지할필요없이시스템안에자원들의부가적인복사를자유롭게할수있다 5. 분산운영체제의실제예 : 운영체제의형태에따른분류중사용자는컴퓨터들의종류를알필요가없으며, 원격지자원들을그들의지역자원에접근하는방식과동일한방식으로접근하도록처리하는형태의운영체제 1) NFS(Network File System) : 선마이크로시스템 2) LoCUS : 캘리포니아대학 3) Andrew : 카네기멜론대학 6. 위상(Topology) 에의한분류 1) 완전연결 (Fully Connection) 형 = 망형 - 각사이트( 노드) 들이시스템내의다른모든사이트들과직접연결된구조 7. 클라이언트/ 서버시스템 : 서버( 정보제공컴퓨터), 클라이언트( 정보요청컴퓨터) 로구성된방식 - 서버는공유된다양한시스템기능과자원을제공해야한다 - 고성능워크스테이션에서가능한그래픽사용자인터페이스를용이하게쓸수있다 - 시스템확장이용이하고유연성이있다 - 사용자중심의개별적인클라이언트운영환경이가능하다 - 개방시스템을받아들이도록참작하고독려 - 많은자원을공유할수있다 Check 18. UNIX 1. 특징 - 높은이식성과확장성 - 다양한네트워킹기능 - 대화식시분할운영체제 - 대부분 C언어로작성 - 다중사용자시스템(Multi-user system) - 다중태스킹( 작업) 운영체제 : 동시에여러가지작업을수행 - 파일소유자, 그룹및그외다른사람들로부터사용자를구분하여파일을보호 - 파일시스템 : 계층( 트리) 구조 - 사용자위주의시스템명령어제공 - 사용자는하나이상의작업을백그라운드에서수행할수있어여 3. 파일시스템의구조 ( 계층적트리구조) 1) 부트블록: 부팅시필요한코드를저장하고있는블록 2) 슈퍼블록 : 전체파일시스템에대한정보를저장하고있는블록 ( 디스크자체에관련된정보) 3) Inode 블록 : 각파일이나디렉토리에대한모든정보를저장하고있는블록 (FCB 과유사) - 파일소유자정보, 크기, 주소, 링크수, 종류( 유형), 보호권한 - 파일생성, 사용, 최종수정시간 - 파일최초수정시간(X), 파일경로(X), 사용횟수(X), 파일이사용된시간대별내역 (X), 파일의우선순위 (X) 4) 데이터블록 : 디렉토리별로디렉토리엔트리와실제파일에대한데이터가저장된블록 4. 명령어 1) 프로세스관련 - fork : 새로운프로세스생성, 복제 ( 자식프로세스생성, 부모프로세스를복제) - wait : 자식프로세스의하나가종료될때까지부모프로세스를임시중지 -15- -16-