티스토리 뷰

반응형

제어 프로그램

시스템 작동상태 감시, 스케줄링, 작업에 사용되는 데이터 관리, 인터럽트 처리 등의 역할을 수행하는 프로그램

    • 감시 프로그램
      • 프로그램의 실행과 시스템 전체의 작동 상태를 감시 감독함
    • 작업제어 프로그램
      • 어떤 업무를 처리 후 다른 업무로 이행을 자동으로 수행하기 위한 준비 및 그 처리에 대한 완료를 담당함
    • 자료관리 프로그램
      • 주기억과 보조기억장치 사이의 데이터 전송과 보조기억장치의 자료 갱싱 및 유지 보수 기능을 함

처리 프로그램 

제어 프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로그램

    • 언어 번역 프로그램
      • 원시 프로그램을 기계어 형태의 목적 프로그램으로 번역하는 프로그램
    • 서비스 프로그램
      • 컴퓨터가 효율적으로 사용할 수 있는 사용빈도가 높은 프로그램
    • 문제 프로그램
      • 해결을 위해 사용자가 작성한 프로그램


운영체제의 개요

    • 정의
      • 시스템의 자원들을 효율적으로 관리하며, 효과적으로 사용할 수 있도록 환경을 제공하는 프로그램의 모임 (윈도우, 유닉스, 리눅스 등)
    • 목적
      • 처리 능력 및 신뢰도 향상, 사용 가능도 향상, 반환 시간 단축
    • 성능 평가 기준
      • 처리능력(Throughput)                일정 시간내에 시스템이 처리하는 일의 양
      • 반환시간(Turn Around Time)      자업 의뢰한 시간부터 처리 완료까지 걸린 시간
      • 사용 가능도(Availability)              시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
      • 신뢰도(Reliability)                        시스템이 주어진 문제를 정확하게 해결하는 정도
    • 기능
      • 프로세스, 기억장치, 입출력 장치, 파일 및 정보등의 자원 관리
      • 자원의 스케줄링 기능 제공
      • 편리한 인터페이스 제공
      • 하드웨어와 네트워크 관리 제어
      • 시스템 오류 검사 및 복구, 데이터 관리, 데이터 및 자원 공유
      • 자원 보호 기능
      • 가상 계산기 기능


운영체제 운용 기법

    • 일괄 처리(Batch Processing)
      • 초기의 컴퓨터 시스템에서 사용된 형태로 일정량 또는 일정 기간 동안 모은 데이터를 한 번에 처리하는 방식
      • 시스템을 효율적으로 사용할 수 있음
      • 응답 시간이 늦지만 하나의 작업에 모든 자원을 사용 하므로 CPU 유휴 시간이 줄어듦
      • 급여 계산, 지불 계산, 연말 결산 등의 업무에서 사용됨
    • 다중 프로그래밍
      • 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
      • 하나의 주기억장치에 2개 이상의 프로그램을 기억시킨 후 하나의 CPU와 대화하면서 동시에 처리함
    • 시분할 (Time Sharing)
      • 여러 사용자가 사용하는 시스템에서 각 사용자들의 프로그램을 번갈아 가며 처리해 줌으로 독립된 컴퓨터를 사용하는 느낌을 줌, Round Robin방식이라고도 함
      • 하나의 CPU는 여러 개의 작업을 동시에 수행할 수 없어 CPU의 전체 사용시간을 작은 작업 시간량으로 나누어 그 시간량 동안만 번갈아가며 할당 한다.
      • 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능함
    • 다중 처리
      • 여러개의 CPU와 하나의 주기억장치를 이용하여 여러개의 프로그램을 동시 처리하는 방식
      • 하나의 CPU가 고장나도 다른 CPU가 처리할 수 있어 시스템의 신뢰성과 안정성이 높다.
    • 실시간 처리
      • 데이터 처리를 즉시 처리하여 결과를 산출하는 방식
      • 제어 업무 등 시간에 제한을 두고 수행되어야 하는 작업에 사용
    • 다중 모드 처리
      • 일괄 처리, 다중 처리, 시분할, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식
    • 분산 처리(Distributed Processing)
      • 여러 컴퓨터를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식
      • 각 단말장치나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리르 가지고 있음


운영체제 발달 과정

일괄 처리   >    다중 프로그래밍, 시분할, 다중처리, 실시간 처리   >    다중모드    >    분산 처리


매크로

반독되는 코드를 한번만 작성하여 필요시 호출하여 사용하는 것으로 매크로 정의 내에 또 다른 매크로를 정의할 수는 없다.


매크로 프로세서

원시 프로그램에 존재하는 매크로 호출 부분에 매크로 프로그램을 삽입하여 확장된 원시 프로그램을 생성하는 시스템 소프트웨어


매크로 프로세서 처리과정

매크로 정의 인식    >    매크로 정의 저장    >    매크로 호출 인식    >    매크로 확장과 인수 치환


링커

    • 언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리, 또다른 실행 프로그램 등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨어
    • 연결 가능만 수행하는 로더의 한 형태로 링커에 의해 수행되는 작업을 링킹이라고 한다.


로더

컴퓨터 내부로 정보가 들어오거나 로드 모듈을 보조기억 부터 주기억장치에 적재하는 시스템 소프트웨어

    • 기능
      • 할당(Allocation)                실행 프로그램을 싱행하기 위해 기억장치 내에 옮겨놓을 공간을 확보하는 기능
      • 연결(Linking)                     부프로그램 호출 시 그 부 프로그램이 할당된 기억장소의 시작주소를 호출한 부분에 등록하여 연결하는 기능
      • 재배치(Relocation)            저장된 프로그램이 사용하는 각 주소들의 할당된 기억장소의 실제 주소로 배치시키는 기능
      • 적재(Loading)                    실행 프로그램을 할당된 기억공간에 실제로 옮기는 기능
    • 종류
      • Compile And Go 로더                별도의 로더 없이 언어 번역 프로그램이 로더 기능까지 수행하는 방식
      • Absolute Loader                         목적 프로그램을 기억 장소에 적재시키는 기능만 수행하는 로더
      • 직접 연결 로더                             일반적인 기능의 로더로 4가지를 모두 수행하는 로더
      • 동적 적재 로더                             시행 시 필요한 일부부만을 적재하는 로더로 Load - On - Call이라고도 함

프로세스

    • CPU에 의해 처리되는 사용자 프로그램이나 시스템 프로그램을 의미하며 프로세스는 각종 자원을 요구한다.
    • 실행중인 프로그램, PCB를 가진 프로그램, 실기억장치에 저장된 프로그램
    • 프로시저가 활동중인 것
    • 프로세서가 할당하는 개체로서 디스패치가 가능한 단위


PCB(Process Control Block)

운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로 프로세스가 생성될 때마다 PCB가 생성되고, 완료되면 제거됨

    • 저장되어있는 정보
      • 프로세스 상태, 포인터, 프로세스 고유 식별자, 스케줄링 및 프로세스 우선순위, CPU레지스터 정보, 주기억장치 관리 정보, 입출력 상태 정보, 계정 정보


스레드

    • 하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘으로 시스템의 여러 자원을 할당받아 실행하는 프로그램 단위
    • 독립적인 스케줄링의 최소 단위로서 독립적인 다중 수행이 가능함
    • 하나의 스레드가 존재할 경우 단일 여러개일 경우 다중 스레드라고함
    • 프로세스의 일부 특성을 갖고 있기에 경량 프로세스라고도 한다.
    • 분류
      • 사용자 수준의 스레드                사용자가 만든 라이브러리를 사용하여 운용함, 속도는 빠르지만 구현이 어려움
      • 커널 수준의 스레드                   운영체제 커널에 의해 스레드를 운용함, 속도는 느리지만 구현이 쉬움
    • 장점
      • 병행성을 증진시킬수 있음
      • 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.
      • 프로그램의 응답시간을 단축시킬 수 있다.
      • 자원의 낭비가 줄어든다.
      • 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신한다.


프로세스의 주요 상태

    • 준비                        프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
    • 실행                        준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
    • 대기, 보류. 블록      입출력 요구가 발생되어 현재 실행중인 프로세스가 중단되고 완료될 때까지 대기하고 있는 상태


프로세스 상태 전이 관련 용어

    • Dispatch                준비상태에 있는 프로세스 중 하나가 할당받아 실행 상태로 전이되는 과정
    • Wake-Up               입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정


스케줄링

프로세스가 생성 실행될 때 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

    • 목적
      • 처리율 , CPU 이용률 증가
      • 공정성, 우선순위 제도, 균형 있는 자원의 사용, 무한 연기 회피
      • 오버헤드, 응답 시간, 반환 시간, 대기 시간 최소화
    • 문맥 교환
      • 현재 CPU를 사용하여 실행되고 있는 프로세스의 상태 정보를 저장하고, 앞으로 실행될 프로세스의 상태정보를 설정한 후 CPU를 할당하여 실행되도록 하는 것
    • 종류
      • 선점                                CPU가 실행 중일때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용하는 기법
      • Non-Preemptive            할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 기법


비선점 스케줄링의 종류

    • FCFS (First - Come First - Service)
      • 준비상태 큐에 도착한 수선에 따라 차례로 CPU를 할당하는 기법
    • SJF(Shortest Job First)
      • 실행시간이 가장 짧은 프로세스에 먼저 CPU를 할당하는 기법
    • HRN(Hightest Response - ratio Next)      
      • 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로, 대기 시간과 서비스시간을 이용하는 기법 (우선순위 = (대기 시간+서비스 시간)/서비스 시간)


선점 스케줄링의 종류

    • SRT(Shortest Remaing Time)
      • 비선점 기법인 SJF 알고리즘을 선점 형태로 변형한 기법으로 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 온 프로세스의 실행 시간을 비교하여 짧은 실행 기간을 요구하는 프로세스에게 CPU를 할당하는 기법
    • RR(Round Robin)
      • 시분할 시스템을 위해 고안된 방식으로 FCFS알고리즘을 선점 형태로 변형한 기법으로 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당받지만 각 프로세스는 할당된 시간 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치됨
    • 다단계 큐(Multi level Queue)
      • 프로세스를 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비상태 큐를 사용하는 기법
    • 다단계 피드백 큐(Multi level Feedback Queue)
      • 특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는 다단계 큐 기법을 준비상태 큐 사이를 이동할 수 있도록 개선한 기법


임계구역(Critical Section)

    • 다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서 하나의 프로세스만 자원 또는 데이터를 사용하도로 지정된 공유 자원을 의미한다.
    • 하나의 프로세스만 접근할 수 있고 해당 프로세스가 자원을 반납하면 다른 프로세스가 사용할 수 있다.
    • 특정 프로세스가 독점할 수 없다.
    • 여러 프로세스가 사용해야 해서 임계 구역 내의 작업은 신속하게 이루어져야한다.
    • 이계 구역에 지입을 요청하면 일정 시간 내에 진입을 허락해야한다.


상호 배제(Mutual Exclusion)

    • 프로세스가 공유 자원을 사용할 경우 다른 프로세스가 해당 공유 자원을 사용하지 못하게 제어하는 기법
    • 여러 프로세스가 동시 사용을 하려고 할때 번갈아가며 공유 자원을 사용하도록 하는 것으로 임계 구역을 유지하는 기법
    • 임계 구역 내에서는 인터럽트, 교착상태, 무한박복이 발생되지 않도록 해야한다.


상호 배제 구현 기법

    • 소프트웨어적 구현 방법
      • 2개의 프로세스 기준            데커, 피터슨 알고리즘
      • 그 이상 프로세스 기준          Lamport의 빵집 알고리즘
    • 하드웨어적 구현 방법
      • Test & Set 기법, Swap 명령어 기법


세마포어(Semaphore)

    • 각 프로세스에 제어 신호를 전달하여 순서대로 작업하는 기법
    • E.J.Dijkstra가 제안 했으며 P와 V라는 2개의 연산에 의해 동기화를 유지하고 상호 배제의 원리를 보장한다.
    • 여러 개의 프로세스가 동시에 값을 수정하지 못한다.
    • S는 P와 V연산으로만 접근 가능한 세마포어 변수로 공유자원의 개수를 나타내고 1과 0 혹은 0과 양의 값을 가질 수 있다.
    • P연산        자원을 사용하려는 프로세스들의 진입 여부를 자원개수(S)를 통해 결정하는 것으로 자원 개수를 감소시켜 (S=S-1) 자원이 점유되었음을 알림
    • V연산        대기중인 프로세스를 깨우는 신호로 자원의 개수를 증가시켜(S=S+1) 자원이 반납되었음을 알림


모니터

    • 동기화를 구현하기 위한 특수 기법으로 공유 자원을 프로세스에 할당하는 데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성됨
    • 정보 추상화와 정보 은폐 개념을 기초로 하며 병행성 구조로 이루어짐
    • 프로세스는 모니터의 진입부를 호출해야만 공유 자원을 사용할 수 있다.
    • 외부 프로시저는 직접 접근할 수 없고 모니터의 경계에서 상호 배제가 시행된다.
    • 한순간에 하나의 프로세스만 진입하여 자원을 사용할 수 있다.


예방(Prevention)기법

    • 교착 상태가 발생되지 않도록 사전에 시스템을 제어하는 방법
    • 교착 상태 발생 시 제거 함으로써 수행되며 일반적으로 자원의 낭비가 가장심함
    • 상호 배제 부정            한번에 여러 프로세서가 공유 자원을 사용할 수 있도록 하는 것이지만 실제로 구현하지 않음
    • 점유 및 대기 부정        실행 전 필요한 자원을 할당하여 프로세스 대기를 없애거나 자원이 점유되지 않은 상태에서만 자원을 요구하도록 함
    • 비선점 부정                 자원을 점유중인 프로세스가 다른 자원을 요구할 때 점유하고 있는 자원을 반납하고 유구한 자원을 사용하기 위해 기다리게 함
    • 환형 대기 부정            자원을 선형 순서로 분류 후 고유 번호를 부여하고 각 프로세스는 점유한 자원의 고유 번호 앞이나 뒤 한쪽 방향으로만 자원을 요구하도록 한 것


회피(Avoidance) 기법

교착 상태가 발생할 가능성을 배제하지 않고 발생 시 피해가는 방법으로 주로 은행원 알고리즘이 사용됨

    • 은행원 알고리즘
      • Dijkstra가 제안한 것으로 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는데서 유래
      • 교착 상태가 발생하지 않을 경우 안전 상태, 교착 상태 발생 시 불안전 상태라고 함


발견 기법

교착 상태에 있는 프로세스와 자원을 발견하는 것으로 자원 할당 그래프 등을 사용함


회복 기법

교착 상태가 발생한 프로세스를 종료하거나 할단된 자원을 선점하여 프로세스나 자원을 회복하는 것


반입(Fetch)전략

보조기억장치에 보관 중인 것을 언제 주기억장치로 적재할 것인지를 결정하는 전략

    • 요구 반입        참조를 요구할 떄 적재하는 방법
    • 예상 반입        참조될 프로그램이나 데이터를 미리 예상하여 적재하는방법


배치(Placement)전략

새로 반입된 프로그램이나 데이터를 주기억장치 어디에 위치시킬 것인지를 결정하는 전략

    • First Fit        프로그램이나 데이터가 들어갈 수 있는 크기의 영역 중에 첫 번째 영역에 넣는 방법
    • Best Fit        프로그램이나 데이터가 들어갈 수 있는 크기의 영역 중에 단편화를 가장 작게 남기는 영역에 넣는 방법
    • Worst Fit     프로그램이나 데이터가 들어갈 수 있는 크기의 영역 중에 단편화를 가장 크게 남기는 영역에 넣는 방법


교체(Replacement)전략

주 기억장치의 모든 영역이 사용중인 상태에서 가상 기억장치의 페이지를 주기억장치에 배치 할 때 주 기억장치의 어느 영역을 교체할 것인지를 결정하는 전략으로, FIFO, OPT, LRU, LFU, NUR, SCR 등이 있다.


단편화

분할된 주기억장치에 할당하고 반납하는 과정을 반복하면서 사용되지 않고 남는 빈 공간 조각을 의미한다.

    • 내부 단편화        분할된 영역에 프로그램이 할당된 후 사용되지 않고 남아 있는 빈 공간
    • 부 단편화        분활된 영역보다 프로그램이 커 할당될 수 없어 사용되지 않고 남아 있는 빈 공간


단편화 해결 방법

    • 통합(Coalescring)기법         주 기억장치 내에 인접해 있는 단펴화된 공간을 하나의 공간으로 통합하는 작업
    • 압축(Compaction)기법        주 기억장치 내에 분산되어 있는 단펴화된 빈공간을 결합하여 하나의 가용공간을 만드는 작업


가상 기억장치

    • 주기억장치보다 큰 용량을 실행하기 위해 보조기억장치의 일부를 주기억장치처럼 사용하는 것
    • 가상 기억장치에 저장된 프로그램을 실행하려면 가상 기억장치의 주소를 주 기억장치의 주소로 바꾸는 매핑 작업이 필요하다.
    • 블록 단위로 나누어 사용하므로 연속 할당 방식에 발생하는 단편화를 해결할 수 있다.
    • 기억장치와 다중 프로그래밍의 효율을 높일 수 있다.
    • 운영체제 설계가 복잡해지고 주소 변환을 위한 테이블을 사용하므로 기억장소를 낭비할 수 있다.


가상 기억장치 구현 기법

    • 페이징 기법
      • 가상 기억장치에 보관된 프로그램과 주 기억장치의 영역을 동일한 영역으로 나눈 후 적재시켜 실행하는 기법
      • 외부 단편하는 발생하지 않으나 내부 단편화는 발생할 수 있음
      • 페이지 맵 테이블이 필요하다.
    • 세그먼테이션 기법
      • 가상 기억장치에 보관된 프로그램을 다양한 크기의 논리적 단위로 나눈 후 주기억장치에 적재시켜 실행하는 기법
      • 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼트라고 각 세그먼트는 고유한 이름과 크기를 갖고 있음
      • 다른 세그먼트에 할당된 영역은 침범할 수 없으며 이를 위해 기억장치 보호키가 필요하다.
      • 내부 단편화는 발생되지 않으나 외부 단편하는 발생할 수 있음
      • 세그먼트 맵 테이블이 필요함


페이지 교체 알고리즘

주 기억장치의 모든 페이지 프레임이 사용중일 때 어떤 페이지 프레임을 선택하여 교체할지 결정하는 기법

    • OPT(OPTimal Replacement)
      • 앞으로 오랫동안 사용하지 않을 페이지를 교체하는 기법이지만 미리 예측해야 하므로 실현 가능성이 희박함
    • FIFO(First In First Out)
      • 가장 먼저 들어온 페이지를 교체하는 기법
      • 이해하기 쉽고 설계가 간단하다.
      • 페이지 프레임 수를 증가시켰는데도 불구하고 페이지 부재가 더 많이 일어나는 벨레이디의 모순 현상이 발생함
    • LRU(Least Recently Used)
      • 최근 가장 사용하지 않은 페이지를 교체하는 기법
      • 각 페이지에 계수기나 스택을 두어 현 시점에서 가장 오래전에 사용된 페이지를 교체함
    • LFU(Least Frequently Used)
      • 사용 빈도가 가장 적은 페이지를 교체하는 기법
      • 초반에 많이 실행된 페이지가 후반에 사용되지 않을 경우에도 프레임을 계속 차지할 수 있음
    • NUR(Not Used Recently)
      • 최근에 사용안한 페이지를 교체하는 기법
      • 사용 여부를 위해 페이지마다 참조 비트와 변형 비트가 사용된다.
      • 비트의 값에 따라 교체될 페이지의 순서가 결정됨
    • SCR(Second Chance Replacement)
      • 오랫동안 있던 페이지 중 사용빈도가 많은 페이지의 교체를 방지하기 위한 FIFO 기법의 단점을 보완한 기법


페이지 크기

    • 크기가 적을 경우
      • 단편화가 감소되고 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듦
      • 수행에 필요한 내용만 주 기억장치에 적재할 수 있기 때문에 기억장치 효율이 높아짐
      • 페이지 맵 테이블의 크기가 커져 매핑속도가 늦어진다.
      • 디스크 접근 수가 증가하여 입출력 시간이 늘어난다.
    • 크기가 클 경우
      • 단편화가 증가하고 한 개의 페이지를 주 기억장치로 이동하는 시간이 늘어남
      • 프로그램 수행에 불필요한 내용까지도 주기억장치에 적재될 수 있음
      • 페이지 맵 테이블의 크기가 작아져 매핑 속도가 빨라짐
      • 디스크 접근 수가 감소하여 입출력의 효율이 증가함


국부성(Locality)화

    • 실행중인 프로세스가 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조한는 성질이 있따는 이론으로 Denning에 의해 증명됨
    • 스래싱을 방지하기 위한 워킹 셋 이론의 기반이 됨
    • 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법중 하나로 가상 기억장치 관리의 이론적인 근거가 된다.
    • 캐시 메모리 시스템의 이론적 근거이다.


국부성 종류

    • 시간 구역성(Temporal Locality)
      • 프로세스가 실행되면서 하나의 페이지를 일정 시간동안 집중적으로 접근하는 현상
      • 시간 구역성이 이루어지는 기억장소 (Loop, Stack, Sub Routine,  Totaling에 사용되는 변수, Counting)
    • 공간 구역성(Spatial Locality)
      • 프로세스 실행 시 일정 위치의 페이지를 집중적으로 접근하는 현상
      • 공간 구역성이 이루어지는 기억장소 (배열 순회, 순차적 코드의 실행, 프로그래머 관련된 변수들을 서로 근처에 선언하는 경우)


Working Set

    • 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합이다.
    • Denning이 제안한 프로그램의 움직임에 대한 모델로 구역성 특징을 이용한다.
    • 자주 참조되는 워킹셋을 주 기억장치에 상주시킴으로 페이지 부재 및 교체 현상이 줄어듬
    • 시간에 따라 자주 참조하는 페이지들의 집합이 변해 워킹 셋도 시간에 따라 바뀌게 된다.


Thrashing

    • 프로세스 처리 시간보다 페이지 교체 시간이 더 많아지는 현상
    • 다중 프로그래밍의 정도가 커지면 스래싱이 나타나고 CPU의 이용률을 급격히 감소시킨다.
    • CPU 이용률을 높이고 스래싱 현상을 방지하는 방법
      • 다중 프로그래밍의 정도를 적정 수준으로 유지
      • 부족한 자원 증설
      • 일부 프로세스 중단
      • 페이지 부재 빈도 조절
      • 워크 셋 유지
      • 적정 프레임 수 제공


디스크 스케줄링

디스크에 있는 데이터를 액세스하기 위해 디스크 헤드가 움직이는 경로를 결정하는 기법

    • 목적
      • 처치량 최대화
      • 평균 응답 시간 및 응답 시간 편차의 최소화
    • FCFS(First Come First Service)
      • 가장 간단한 스케줄링으로 디스크 대기 큐에 먼저 들어온 트랙에 대한 요청을 먼저 서비스하는 기법
    • SSTF(Shortest Seek Time First)
      • 탐색 거리가 가장 짧은 트랙에 대한 요청을 먼저 처리하는 기법
      • 안쪽이나 바깥쪽 트랙이 가운데 트랙보다 서비스를 덜 받는 경향이 있으며 멀리 떨어진 부분은 기아 상태가 발생할 수 있음
      • 처리량이 많은 일괄 처리 시스템에 유용함
    • SCAN
      • SSTF가 갖는 탐색 시간의 편차를 해소하기 위한 기법
      • 현재 헤드 위치에서 진행 방향이 결정되면 탐색 거리가 짧은 순서에따라 그 방향으로 모두 서비스하고 끝에서 역방향으로 서비스함
    • Circular SCAN
      • 항상 바깥에서 안쪽으로 움직이면서 가장 짧은 탐색 거리를 서비스하는 기법
      • 안 쪽으로 끝까지 이동 후 안쪽에 더 이상 요청이 없으면 가장 바깥쪽 끝으로 이동한 후 다시 안쪽으로 이동하면서 요청을 서비스함
    • N-Step SCAN
      • SCAN 기법의 무한 대기 발생 가능성을 제거한 것으로 어떤 방향으로 진행이 시작될 떄 대기중이던 요청들만 서비스하고 진행 도중 도착한 요청들은 한데 모아 다음 반대 방향 진행 때 서비스하는 기법
    • Eschenbach
      • 부하가 큰 항공 예약 시스템을 위한 개발
      • 탐색 시간과 회전 지연 시간을 최적화하기 위한 최초의 기법
      • 헤드는 C-SCAN처럼 움직이며 모든 실린더는 실린더에 요청이 없어도 전체 트랙이 한 바퀴 돌 동안 서비스를 받음
    • SLTF(Shortest Latency Time First)
      • Sector Queuing이라고도 하며 회전 시간의 최적화를 위해 구현된 기법
      • 디스크 대기 큐에 있는 여러 요청을 섹터 위치에 따라 재 정렬하고 가까운 섹터를 먼저 서비스함
      • 헤드의 이동이 거의 없으며 고정 헤드 장치인 드럼과 같은 장치에서 사용됨
    • LOOK
      • SCAN 기법을 기초로 사용되며 진행 방향의 마지막 요청을 서비스한 후 그 방향의 끝으로 이동하는 것이 아니라 역방향으로 진행하는 기법


파일

    • 레코드의 집합체를 의미한다.
    • 프로그램 구성의 기본 다위이며 보조 기억장치에 저장됨
    • 각 파일마다 이름, 위치, 크기등 여러 속성을 가지고 있음


파일 시스템

    • 보조 기억장치에서의 파일을 총괄하는 파일 관리 기술
    • 사용자와 보조 기억장치 사이에서 인터페이스를 제공
    • 적절한 제어 방식을 통해 타인의 파일을 공동으로 사용할 수 있도록한다.
    • 예비와 복구등의 기능을 제공한다.
    • 정보를 암호화하고 해동할 수 있다.


파일 디스크립터

    • 시스템이 필요로 하는 파일에 대한 정보를 갖고 있는 제어 블록이다.
    • 보통 보조기억장치 내에 저장되었다가 열때 주기억장치로 옮겨진다.
    • 파일마다 독립적으로 존재하며 시스템에 따라 다른 구조를 가질 수 있다.
    • 파일 시스템이 관리하므로 사용자가 직접 참조 불가
    • 파일 디스크립터가 가진 정보
      • 파일 ID번호, 이름,  크기, 구조, 유형
      • 보조 기억장치에서의 파일 위치, 유형
      • 액세스 제어 정보 및 횟수
      • 생성 및 제거 날짜와 시간
      • 최종 수정 날짜 및 시간


순차 파일(Sequential File)

    • 레코드를 논리적 처리 순서에 따라 연속된 물리적 저장공간에 기록하는 것
    • 변동 사항이 크지않고 기간별로 일괄 처리를 주로하는 경우에 적합하고 가능한 자기 테이프에서 사용한다.
    • 장점        파일의 구성용이, 기억공간의 이용 효율, 처리속도, 처리비용, 어떤 기억 매체든 실현 가능
    • 단점        새 레코드를 삽입하거나 삭제하는 경우 파일 전체를 복사한 후 수행해야 하므로 시간이 많이 걸림, 검색 효율이 낮고, 접근 및 응답 시간이 느림


색인 순차 파일

    • 순차 파일과 직접 파일에서 지원하는 편성 방법이 결홥된 형태
    • 각 레코들의 키 값을 논리적으로 저장하고 시스템은 레코드의 실제 주소가 저장된 색인을 관리한다.
    • 레코드 참조 시 색인을 탐색한 후 색인이 가리키는 포인터를 사용하여 직접 참조
    • 기본, 색인, 오버플로 영역으로 구성되고 색인 영역은 트랙, 실린더, 마스터 색인 영역으로 분류됨
    • 장점        순차, 임의 처리가 모두 가능 효율적인 검색 가능, 삭제, 삽입, 갱신이 용이함
    • 단점        색인, 오버플로 처리를 위한 추가 기억공간이 필요 접근 시간이 직접 파일보다 느림


직접 파일

    • 파일을 구성하는 레코드를 임의의 물리적 저장공간에 기록하는 것
    • 레코드에 키가 할당되며 해싱 함수를 이용하여 키에 대한 보조 기억장치의 물리적 상대 레코드 주소를 계산한 후 해당하는 주소에 레코드를 저장
    • 레코드는 해싱 함수에 의해 계산된 물리적 주소를 통해 직접 접근이 가능
    • 임의 접근이 가능한 자기 디스크나 자기 드럼을 사용
    • 장점        각 레코드에 직접 접근하거나 기록, 접근 시간, 레코드 삽입, 갱신, 삭제가 용이함
    • 단점        레코드 주소 변환 과정이 필요하고 이로인한 시간 소요, 기억공간의 효율이 저하, 물리적 구조에 대한 지식이 필요


디렉터리의 구조

    • 디스크에 존재하는 파일에 대한 여러 정보를 가지고 있는 특수한 형태의 파일이다.
    • 1단계
      • 가장 간단하고 모든 파일이 하나의 디렉터리 내에 위치하여 관리되는 구조
      • 모든 파일이 유일한 이름을 가져야 함
      • 같은 디렉토리 내에 있어 이해가 용이하지만 파일 수나 사용자 수가 증가하면 관리가 복잡해짐
    • 2단계
      • 중앙에 MFD가 있고 그 아래 사용자별로 UFD가 있는 2계층 구조
      •  MFD는 사용자 파일 디렉터리를 관리하고 UFD는 사용자별 파일을 관리함
      • 서로 다른 디렉터리에서는 돌일한 이름으로 파일을 사용할 수 있음
    • 트리
      • 하나의 루트 디렉터리와 여러 종속 디렉터리로 구성된 구조
      • 우리가 사용하는 운영체제에서 사용되는 디렉터리 구조
      • 디렉터리 생성과 파괴가 용이하고 동일한 이름의 파일이나 디렉터리를 생성할 수 있다.
      • 포인터를 이용하여 디렉터리를 탐색하며 절대 경로명과 상대 경로명을 사용함
    • 비순환 그래프
      • 하위 (파일, 디렉터리)를 공동으로 사용할 수 잇는 껐으로 싸이클이 허용되지 않는 구조
      • 하나의 파일이나 디렉터리가 여러 개의 경로 이름을 가질 수 있음
      • 공유된 파일 삭제 시 Dangling Pointer가 발생할 수 있음
    • 일반적인 그래프
      • 트리 구조에 링크를 첨가시켜 순환을 허용한 그래프 구조
      • (디렉터리, 파일) 공유에 완전한 융통성이 있음
      • 불필요 파일을 제거하여 사용 공간을 늘리기 위해서는 참조 계수기가 필요하다.

자원 보호 기법

컴퓨터 시스템 자원에 불법적으로 접근하는 것을 제어하고 자원의 물리적인 손상을 예방하는 것


자원 보호 기법 종류

    • 접근 제어 행렬
      • 일반적인 모델로 객체에 대한 접근 권한을 행렬로써 표시한 기법
    • 전역 테이블
      • 가장 단순한 구현방법으로 영역, 객체, 접근 권한의 집합을 목록 형태로 구성한 기법
    • 접근 제어 리스트
      • 접근 제어 행렬에 있는 각 열 객체 중심으로 접근 리스트를 구성한 기법
    • 권한 리스트
      • 접근 제어 행렬에 있는 각 행 영역을 중심으로 구성한 것으로서 각 사용자에 대한 자격들로 구성되며 자격은 객체와 그 객체에 허용된 연산 리스트임


보안 요건

    • Confidentiality
      • 정보와 자원을 인가된 사용자에게만 접근이 허용되며 정보 전송중 노출되더라도 데이터를 읽을 수 없음
    • Integrity
      • 인가된 사용자만 정보 수정이 가능
    • Availability
      • 인가된 사용자는 언제든 사용 가능
    • Authentication
      • 인가된 사용자인지 확인하는 모든 행위
    • NonRepudiation
      • 데이터 송 수신 사실을 부인할 수 없도록 송 수신 증거를 제공함


파일 보호 기법

파일에 대한 일방적인 접근과 손상을 방지하기 위한 기법

    • Naming
      • 접근할 파일 이름을 모르는 사용자를 접근 대상에서 제외시키는 기법
    • Password
      • 암호를 모르는 사용자를 접근 대상에서 제외시키는 기법
    • 접근 제어
      • 사용자에 따라 공유 데이터에 접근할 수 있는 권한을 제한하는 방법


보안 유지 기법

    • 외부 보안
      • 사설 보안            천재지변이나 외부 침입자로부터의 보안
      • 운용 보안            관리 및 경영자들의 정책과 통제에 의해 이루어지는 보안
    • 사용자 인터페이스 보안
      • 운영체제가 사용자의 신원을 확인한 후 사용할 수 있게 하는 보안 기법
    • 내부 보안
      • 내장된 보안 기능을 이용하여 시스템 신뢰성을 유지하고 보안 문제를 해결하는 기법


프로세서 연결 방식

    • 시분할 및 공유 버스
      • 각종 장치들을 버스라는 단일 경로로 연결하는 방식
      • 장치 연결이 단순하고 경제적 융통성이 있고 장치 추가에 용이함
      • 한 시점에 하나만 전송이 가능
    • 크로스바 교환 행렬
      • 시분할 방식에서 버스의 수를 기억장치 수 만큼 증가시켜 연결한 방식
      • 각 기억장치마다 다른 경로를 사용할 수 있고 두 개의 다른 기억장치를  동시에 참조 가능
      • 장치의 연결이 복잡해진다.
    • 하이퍼 큐브
      • 다수의 프로세서들을 연결하는 방식으로 비교적 경제적 방식임, 확장성이 좋음
      • 하나의 프로세서에 연결되는 다른 프로세서의 수가 n개일 경우 프로세서는 총 2^n개가 필요
    • 다중 포트 기억장치
      • 시분할 방식과 크로스 방식의 혼합한 형태의 방식
      • 많은 수의 프로세서를 쉽게 연결할 수 있지만 전송 시간이 비교적 느리다.


다중 처리기의 운영체제 구조

    • 주/종 처리기
      • 하나의 주 프로세서로 지정하고 나머지는 종 프로세서로 지정하는 비대칭 구조
      • 주 프로세서 고장 시 전체 시스템이 다운된다.
      • 종 프로세서는 연산만 담당한다.
    • 분리 실행 처리기
      • 주/종 처리기의 비대치성을 보완하여 각 프로세서가 독자적인 운영체제를 가지도록 구성한 구조
      • 각 프로세서에서 발생한 인터럽트는 해당 프로세서에서 해결
      • 독자적으로 운영체제를 가지고 있어 한 프로세서가 고장나더라도 전체 시스템이 다운되지 않음
    • 대칭적 처리기
      • 여러 프로세서들이 운영체제를 공유하여 수행하는 구조
      • 가장 복잡한 구조를 가졌으나 가장 강력한 시스템
      • 여러 프로세서가 동시 수행될 수 있고 정보를 통일적이고 일관성있게 운영함
      • 프로세서의 수를 늘린다고 시스템 효율이 좋아지지는 않음
      • 프로세서 간의 통신은 공유 메모리를 이용한다.


프로세서의 결합도

    • Loosely Coupled
      • 각 프로세서마다 독립된 메모리를 가진 분산 처리 시스템이다.
      • 둘 이상의 독립된 컴퓨터 시스템을 통신망을 통하여 연결한 시스템
      • 각 시스템마다 독자적인 운영체제를 가지고 있어 CPU간의 결합력이 약함
      • 통신은 메시지 전달이나 원격 프로시저 호출을 통해서 이루어짐
    • Tightly Coupled
      • 동일 운영체제하에 여러 개의 프로세서가 하나의 메모리를 공유하는 다중 처리 시스템
      • 하나의 운영체제가 모든 프로세서와 시스템 하드웨어를 제어함
      • 통신은 공유 메모리를 통해서 이루어진다.
      • 하나의 메모리를 사용하므로 CPU간의 결합력이 강함
      • 공유 메모리를 차지하려면 프로세서 간의 경쟁을 최소화해야 함


분산 처리 시스템의 투명성

Transparency

분산 처리 운영체제에서 구체적인 시스템 환경을 사용자가 알수 없도록 하며 정보가 없어도 원하는 작업을 수행할 수 있도록 지원하는 개념


부산 처리 시스템의 투명성의 종류

    • Location        
      • 위치를 몰라도 자원에 접근할 수 있도록 함
    • Migration
      • 사용자나 응용 프로그램의 동작에 영향을 받지 않고 시스템 내에 있는 자원을 이동할 수 있도록 함
    • Replication
      • 자원 복제를 사용자에 통지할 필요 없이 자유로이 수행할 수 있음
    • Concurrency
      • 위치를 몰라도 다중 사용자들이 자원을 병행 처리하고 공유할 수 있도록 함
    • Access
      • 각 프로세서의 로그인과 같은 동작을 사용하여 지역이나 원격에 접근할 수 있도록 함
    • Performance
      • 여러 부하에 대해 성능을 증가시키기 위하여 시스템을 재구성할 수 있도록 함
    • Scaling
      • 시스템이나 응용 프로그램들이 구조나 알고리즘에 대한 변경 없이 규모에 맞추어 확잘할 수 있도록 함     
    • Failure
      • 하드웨어나 소프트웨어 구성 요소의 고장에도 불구하고 그들의 작업을 완료할 수 있도록 함

위상에 따른 분산 처리 시스템의 분류

    • Fully Connection
      • 모든 사이트들과 직접 연결된 구조
      • 하나의 링크가 고장나도 다른 링크는 이용가능
      • 사이트 수가 N개이면 링크수는 (N(N-1))/2
      • 기본 비용으 많이 들고 통신비용은 적게 듦
      • 사이트 간의 메시지 전달이 매우 빠르다.
    • Partially Connection
      • 일부 사이트들 간에만 직접 연결된 형태로 연결 안된 사이트는 연결된 사이트를 통해 통신하는 구조
      • 기본 비용은 완전 연결보다 적게 들고 통신 비용은 연결형보다 많이 듦
      • 완전 연결형보다 신뢰성이 낮다.
    • Tree / Hierachy
      • 분산 처리 시스템의 가장 대표적 형태 사이트들이 트리형 연결 구조
      • 기본 비용은 연결형보다 적게 들고 통신 비용은 트리의 깊이에 비례함
      • 부모 사이트를 통해 통신이 되어 부모가 고장나면 자식도 통신 불가
    • Star
      • 하나의 중앙사이트에 직접 연결되어있고 다른 사이트와는 연결되어 있지 않은 구조
      • 기본 비용은 사이트 수에 비례하고 통신 비용은 적게 듦
      • 중앙 사이트만 고장나지 않으면 다른 사이트에 영향은 없음
    • Ring
      • 각 사이트가 인접하는 다른 두 사이트만 직접 연결된 구조
      • 정보는 단반향 또는 양방향으로 전달될 수 있음
      • 기본 비용은 사이트 수에 비례하고 목적 사이트에 데이터를 전달하기 위해 링을 순환할 경우 통신 비용이 증가
    • Multi Access Bus Connection
      • 모든 사이트들이 공유 버스에 연결된 구조
      • 기본 비용은 사이트 수에 비례하고 통신 비용은 일반적으로 저렴하다.
      • 사이트 고장은 다른 사이트에 영향은 없지만 버스 고장 시 전체 시스템에 영향을 준다.
      • 사이트의 추가와 삭제가 용이하다.


유닉스의 특징

    • 시분할 시스템을 위해 설계된 대화식 운영체제
    • 소스가 공개된 개방형 시스템
    • C언어로 작성되어있고 이식성이 높으며 장치, 프로세스 간에 호환성이 높다.
    • 크기가 작고 이해하기 쉬우며 다중 사용자, 다중 작업을 지원한다.
    • 통신망 관리용 운영체제로 적합하다.
    • 트리 구조의 파일 시스템으로 전문적인 프로그램 개발에 용이
    • 백그라운드에서 작업 수행이 가능하고 여러 개의 작업을 병행 처리할 수 있다.


유닉스 시스템의 구성

    • Kernel
      • 하드웨어를 보호하고 프로그램과 하드웨어 간의 인터페이스 역할을 함
      • 부팅 시 주기억장치에 적재되어 상주하면서 실행됨
    • Shell
      • 명령어를 인식하여 수행하는 명령어 해석기
      • 시스템 사용자 간의 인터페이스를 담당
      • 주 기억장치에 상주하지 않고 명령어가 포함된 파일형태로 존재
    • Utility
      • 일반 사용자가 작성한 프로그램을 처리하는데 사용함
      • DOS에서의 외부 명령어에 해당 함


유닉스 파일 시스템의 구조

    • 부트 블록
      • 부팅 시 필요한 코드를 저장하고 있는 블록
    • 슈퍼 블록
      • 전체 파일 시스템에 대한 정보를 저장하고 있는 블록
    • I-node 블록
      • 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록
    • 데이터 블록
      • 디렉터리별로 디렉터리 엔트리와 실제 파일에 대한 데이터가 저장된 블록


유닉스 주요 명령어

    • fork            새로운 프로세스 생성
    • exec           새로운 프로세스 수행
    • &                백그라운드 처리를 위해 명령의 끝에 입력
    • wait           상위 프로세스가 하위 프로세스 종료등의 이벤트를 기다림
    • exit            프로세스 수행 종료
    • cat             내용을 화면에 표시
    • chmod       파일의 사용 권한 지정
    • chown       소유자 변경
    • mount       파일 시스템을 마운팅
    • mkls           파일 시스템 생성
    • chidr          현재 사용할 디렉터리 위치 변경
    • fsck            파일 시스템을 검사 및 보수하여 무결성을 검사
    • rmdir         디렉터리 삭제
    • ls                현재 디렉터리 파일 목록 확인
    • getpid        자신의 프로세스 아이디를 얻음
    • getppid      부모 프로세스 아이디를 얻음
    • cp               파일복사
    • mv              파일 이동 및 이름 변경
    • rm              파일 삭제
    • finger         사용자 정보를 표시함

반응형
댓글
최근에 올라온 글
최근에 달린 댓글