[정보처리기사_필기] 운영체제 <1>
- Information Logs/IT Notes
- 2014. 1. 6. 15:41
운영체제의 개념 및 종류
✔ 개념
- 자원(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)
✔ 교착상대 해결 방법
✔ 회피기법 : 교착상태 발생시 회피
- 은행원 알고리즘 : 불안정 상태가 되지 않도록 자원을 여유롭게 남기고 할당
※ 불안정 상태 : 교착상태에 빠질 가능성이 높은 단계, 자원의양과 프로세스의 수가 일정해야 한다.