[정보처리기사_필기] 운영체제 <1>

운영체제의 개념 및 종류


           ✔ 개념

                    - 자원(H/W, S/W)을 효율적으로 관리 : 유지보수 X

                    - 사용자와 컴퓨터간의 인터페이스 (CUI,문자 -> GUI,그래픽)

                    - 사용자 | 응용프로그램 | 유틸리티 | OS | 하드웨어 


           ✔ 목적

                    - 자원의 효율적인 운영, 자원 스케줄링

                    - 응답시간 단축, 반환시간 단축


           ✔ 성능평가

                     - 처리능력(Throughput) : 단위시간내의 처리량, 높을수록 좋다

                     - 반환시간(Turnaround Time) : 작업이 완료될때까지 소요시간, 낮을수록 좋다

                     - 사용가능도(Availability) : 즉시 사용 가능한정도, 높을수록 좋다

                     - 신뢰도(Reliability) : 문제를 정확히 해결하는 정도, 높을수록 좋다.


           ✔ 운용기법

                     - 일관처리(Batch Processing System)

                            ➤ 초기의 컴퓨터 시스템

                            ➤ 월급, 요금, 세금 계산등에 이용

                     - 다중 프로그래밍 시스템(Multi Programming System)

                            ➤ 하나의 CPU에서 여러개의 프로그램 동시에 실행

                     - 시분할 시스템(Time Sharing System)

                            ➤ 여러 프로그램 작업을 조금씩 나누어서 번갈아가며 실행 ->동시 실행으로 착각

                            ➤ 라운드 로빈방식

                     - 다중 처리 시스템(Multi Processing System)

                            ➤ 하나의 일을 여러개의 처리장치(CPU)로 수행 (듀얼코어)

                     - 실시간 처리 시스템(Real Time Processing System)

                            ➤ 데이터 발생 즉시 처리

                            ➤ 예약, 은행 업무 등

                     - 다중 모드 시스템(Multi Mode System)

                            ➤ 일괄처리, 다중프로그래밍, 시분할, 다중처리, 실시간처리를 모두 제공

                     - 분산 처리 시스템(Distribute Processing System)

                            ➤ 여러개의 컴퓨터를 연결하여 작업속도를 개선


 

시스템 소프트웨어

응용소프트웨어 : 워드, 포토샵과 같이 한가지 목적

시스템 소프트웨어 : 운영체제와 같이 시스템을 관리


          ✔ 시스템 소프트웨어의 구성

                      - 제어 프로그램

                           ➤ 감시 프로그램(Supervisor P)

                           ➤ 작업관리 프로그램(Job managermant P)

                           ➤ 데이터 관리 프로그램

                      - 처리 프로그램

                            언어번역(C:컴파일러,I:인터프리터,A:어셈블러), 유틸리티

 

         ✔ 어셈블리어, 어셈블러

                      - 기계어(2진수)대신 코드화한 기호사용, 저급언어

                      - 코드화 하는 번역기 : 어셈블러


           ✔ 컴파일러 : 한번에 번역


           ✔ 인터프리터 : 한줄씩 번역 ->오류 찾기 쉽다(ex: BASIC)


           ✔ 링커 : 번역기를 통해 생성된 기계어의 개개 모듈들을 하나로 연결


           ✔ 로더 

                       - 링크된 프로그램을 주기억장치(RAM)으로 읽는다

                       - 로더의 기능   

                             ➤ 할당 : RAM공간 확보

                             ➤ 재배치 : 프로그램 주소를 기억장소의 실제주소로 바꾼다.

                             ➤ 연결 : 주소연결

                             ➤ 적재 : 프로그램을 실제로 옮긴다.

                       - 로더의 종류 - 절대 로더(Absolute Loader) : 가장 많이 사용


           ✔ 메크로 : Sub Routine, Sub Program

                        - 반복되는 코드를 특정이름으로 정의

                        - 메크로 프로세서 기능

                             ➤ 매크로 정의 인식

                             ➤ 매크로 정의 저장

                             ➤ 매크로 호출 인식

                             ➤ 매크로 호출 확장



프로세서


           ✔ 정의

                      - PCB

                      - 실행중인 프로그램

                      - 실기억장치(RAM)에 저장된 프로그램

                      - CPU가 작업하는 단위

                      - 비동기적 행위를 일으키는주체(언제 사용자가 호출할지 모른다)


           ✔ PCB(프로세스 제어 블록)

                      - 프로세스의 정보가 저장되어 있는 곳

                      - 저장 정보

                            ➤ 식별자(ID) : 이름

                            ➤ 현재상태 

                            ➤ 우선순위

                            ➤ 프로그램 카운터

                            ➤ 레지스터정보

                            ➤ 기억장치정보


           ✔ 프로세스 상태 전이

                       - Dispatch : 준비단계 -> 실행단계

                       - Time Out : 실행단계 -> 준비단계

                       - Blocked : 실행단계 -(인터럽트)-> 대기단계

                       - Wake up : 대기단계 -> 준비단계 (바로 실행단계로 돌아가지 않는다)

 

           ✔ 인터럽트 

                        - 전원이상, 기계착오, SVC(운영체제에 의한 감시), 입출력, 외부신호

                        - 순서

                               인터럽트 요청 -> 프로그램실행 중단 -> 현재 상태 보존 -> 처리루틴(문제파악) -> 서비스 루틴(문제해결) 

                               -> 상태 복구 -> 프로그램 재개


           ✔ 스레드(Thread)

                        - 프로세스 내의 작업단위

                        - 종류 : 사용자 수준, 커널 수준


           ✔ 문맥교환(Context Switching)

                        - 상태 변경시에 PCB에 프로그램 상태 정보를 저장.                                


 

병행 프로세스


           ✔ 두 개 이상의 프로세스들이 동시에 실행 상태로 존재


           ✔ 임계구역(Critical Section)

                          - 한번에 하나의 프로세스만 수행가능하도록 지정된 공간

                          - 하나의 프로세스가 자원 반납후 다른 프로세스가 사용가능

                          - 특정 프로세스가 독점 불가


           ✔ 상호 배제 기법(Mutual Exclusion)

                          - 각 프로세스가 번갈아 공유자원을 사용하도록 임계구역 유지


           ✔ 동기화기법 : 타이밍을 맞춰 순서를 결정 

                         - 세마포어(Semaphore)기법 : 수신호

                                 P연산 : S = S - 1  // V연산 : S = S + 1

                                 S 값을 검색하여 자원 사용 가능한지를 확인

                         - 모니터

                                상호배제(Mutex)를 보장

                                하나의 프로세스가 자원 사용일때 다른 프로세스 접근을 차단



교착 상태 (Deadlock)


           ✔ 둘 이상의 프로세스가 서로 자원을 점유한 상태로 무한정 대기하는 현상


           ✔ 교착상태 발생 조건

                        - 상호배제(Mutual Exclusion)

                        - 점유 및 대기(Hold and Wait)

                        - 비선정(Non Preemption) : 독점 방지를 위하여 프로세스 강제 종료할 권한이 없음

                        - 환형 대기(Circular Wait)


           ✔ 교착상대 해결 방법


           ✔ 회피기법 : 교착상태 발생시 회피

                         - 은행원 알고리즘 : 불안정 상태가 되지 않도록 자원을 여유롭게 남기고 할당

                             ※ 불안정 상태 : 교착상태에 빠질 가능성이 높은 단계, 자원의양과 프로세스의 수가 일정해야 한다.

 

댓글(0)

Designed by JB FACTORY