[(구)정처기/컴퓨터일반] (3) 운영체제 자주 틀리는 내용 정리
주의) 해당 내용은 (구)정보처리기사, 컴퓨터일반 내용을 기반으로 문서화하였습니다. 수정이 필요하거나, 부족한 내용이 있을시 답글을 남겨주시면 해당 항목을 수정하겠습니다.
어셈블리어의 장점
- 어셈블리어로 작성한 원시 프로그램을 기계어로 번역
- 기계어보다 쉽고, 이해하기가 쉽다
- 프로그램의 주소가 기호 번지이다
- 프로그램에 데이터를 사용하기 쉽다
매크로 프로세서의 기능
- 매크로 정의 인식 : 매크로를 정의한 부분의 시작과 종료 파악
- 매크로 정의 저장 : 매크로 호출 시 확장하기 위해 저장
- 매크로 호출 인식 : 확장하기 위한 준비가 되어 있는 지 확인
- 매크로 확장 및 인수 : 원시 프로그램 위치에 저장된 내용과 인수를 치환
로더의 종류
- 절대 로더 : 로더의 역할 축소, 한 번 지정한 주기억 장소의 변경이 어려움
- 할당, 연결 ⇒ 프로그래머
- 재배치 ⇒ 번역 프로그램
- 적재 ⇒ 로더
- 직접 연결 로더 : 일반적인 로더 형태, 로더가 모두 수행
- 동적 로더 : CPU가 현재 사용중인 부분만 적재, 미사용 중인 것은 보조기억장치에 보관(Load-on-call)
운영체제의 구성
- 제어프로그램
- 감시 프로그램(Supervisor P) : 일명 모니터, 지시/감독
- 데이터 관리 프로그램(Data Management P) : 주기억 장치, 보조기억 장치 간 작업
- 작업 제어 프로그램(Job Control P) : 스케쥴 및 시스템 지원 할당 등을 관리
- 처리 프로그램
- 언어 번역 프로그램 : 목적 프로그램으로 번역해주는 프로그램
- 서비스 프로그램 : 모듈이나 프로그램을 사용자가 사용할 수 있도록 제공
- 문제 프로그램 : 사용자의 응용 처리를 위해 사용
운영체제의 발달 과정
- 시분할 처리 : 전문적인 처리기가 존재 하지 않음
스풀 vs 버퍼링
- 스풀(Spool) :
프로그램
과 I/O 장치와의 속도 차를 극복하기 위해,HDD
가 중재 - 버퍼링(buffering) :
CPU
와 I/O 장치와의 속도 차를 극복하기 위해,주기억
장치가 중재
PCB(Process Control Block) ⇒ 프로세스 생성 정보 없음
- 식별자, 현재 상태, PC, 우선순위, CPU 레지스터 정보, 계정 정보, 기억 장치 관련 정보
- CPU의 각종 레지스터 상태를 가리키는 포인터, 입출력 정보
- 적재된 기억 장치 부분을 가리키는 포인터, 할당된 자원을 가리키는 포인터
- 부모/자식 프로세스를 가리키는 포인터
인터럽트 종류
- SVC(SuperVisor Call) : 감시 프로그램 호출 시 발생
입출력 수행 루틴 호출 / 기억 장치 할당 루틴 / 오퍼레이터와의 대화 - 입출력(I/O) : 하드웨어적 인터럽트
입출력 채널 확인, 준비, 할당, 완료, 프로세스 전이(실행 ⇒ 대기) - 외부(External) : 운영체제 소속이 아닌 외적인 요인으로부터 발생
인터럽트 시계에 의해 프로세스가 시간 할당량이 종료된 경우,
웹 서버나 프린터 서버를 운영하고 있는 상태에서 외부로부터 인터럽트 처리 신호 올 때 - 재시작 : 운영체제를 메모리에 다시 상주시킬 때
- 프로그램 검사 : 명령어를 수행하는 과정에서 부분적으로 발생되는 문제
- 기계 검사 : 시스템의 기계 고장
CPU 스케줄링
- HRN(Highest Response-ratio Next) 스케줄링 기법
(대기 시간 + 서비스 시간) / 서비스 시간
세마포어의 특징
- 상호배제의 원리 보장
- 소프트웨어나 하드웨어로 구현 가능
V
조작 : Wake-Up = Up =Signal
P
조작 : Sleep = Down =Wait
교착 상태 해결 방안
- 예방(Prevention)
상호배제 부정, 대기 제거, 선점 인정, 선형 대기 상태로 변경 ⇒ 효율적이지 못함 - 회피(Avoidance)
안정상태를 유지할 수 있는 프로세스의 자원 요구만 할당, 은행원 알고리즘 - 회복(Recovery)
선점 / 복귀 / 제거 / 사용자의 조치 - 발견(Detection)
자원 할당 그래프는 시스템이 중단된 이유가 교착상태인가를 발견하는 기법
주기억 장치 재사용 기술
- 통합(Coalescing) : 인접한 공백들을 더 큰 하나의 공백으로 만드는 과정
- 집약(Compaction, 압축) : 서로 떨어져 있는 여러 개의 낭비 공간을 모아 하나의 공간으로
캐시 기억 장치
- 주기억 장치 ↔ CPU 간 속도 차이 극복, 버퍼의 기능 수행
- 분리 캐시 : 캐시 접근 시 충돌을 방지하기 위해 코드와 데이터를 분리해서 기억
- 쓰기 접근 빈도가 높다 == 캐싱-일관성 문제가 발생할 확률 높음 == 성능 저하
- 사상 방법
- 직접 사상
- 전체 연합 사상
- 블록 중 아무 곳이나 하나 정해서 기억
- 메모리 워드의 번지 + 데이터 함께 저장, RR 방식으로 교체
- 세트 연합 사상
페이지 교체 알고리즘
- NUR(Not Used Recently)
- 참조비트, 변형비트 ⇒ ‘1’ 최근 / ‘0’ 예전
파일의 구조
- 직접 파일(Direct Access File)
- 해싱 사상 함수에 의해 물리적인 주소로 변환하여 데이터를 기록 / 검색
- 한 번 파일을 개방하면 읽거나 쓰기를 자유롭게
- 평균 접근 시간 내 접근
- 디스크 기억 장치에 많이 이용
파일 시스템의 기능
- 파일 저장 / 공유 / 생성 / 변경 / 제거 / 응용 처리
- 백업, 복구, 여러 종류의 접근 제어 방법 제공, 파일 간 정보 전송
- 기호형 이름을 사용 ⇒ 자신의 파일을 참조할 수 있도록 장치 독립성을 제공
디렉터리
- 비순환(주기) 그래프 디렉터리
- 트리구조와 유사, 사이클 불허
- 하나의 파일을 여러 사용자가 공유하기 때문에 삭제 시 문제점 발생
- 융통성이 있으며 기억 공간을 절약할 수 있으나 복잡
- 하나의 파일이 다수의 이름으로 존재
- 공유하고 있는 파일 제거 시 Dangling Pointer 발생 가능
- Unix 운영체제에서 사용
보안 유지 방식
- 외부 보안 : 천재지변으로부터 컴퓨터를 보호
- 내부 보안 : 운영체제/하드웨어 내장, 프로그램의 신뢰성 있는 운영/무결성 보장
- 사용자 인터페이스 보안 : 인증, 패스워드
- 암호화
- 비밀키 = 공통키 = 대칭키 = 관용키 = 단일키 = Private Key System
- 암호화 키 = 복호화 키
- DES, 평문을 암호화
- 공개키 = 비대칭키
- 암호화 키(공개) != 복호화 키(보호)
- 키 분배가 간단, 암호화 과정 복잡, 속도가 느림
- RSA, PGP
- 비밀키 = 공통키 = 대칭키 = 관용키 = 단일키 = Private Key System
Flynn
- SISD : 개인 컴퓨터, Pipeline 기법
- MISD : 실제 없음
- SIMD : 대형 컴퓨터, Array Processor
- MIMD : 분산/병렬 컴퓨터
- 교환형 다중 처리기 : 크로스바 교환 행렬(버스의 수 만큼 메모리 증가)
분산 시스템의 결함
- 링크 결함, 사이트 결함, 메시지의 분실
분산 처리 시스템의 계층 구조
- 하드웨어 ⇒ 기억 장치 ⇒ 프로세스 ⇒ 파일 시스템 ⇒ 사용자 응용
UNIX 기본 구성
- 쉘
- 명령의 입력을 받아 시스템 기능을 수행하는 명령 해석기
- 사용자 시스템 간 인터페이스 담당, 여러 가지 내장 명령어 보유
- 파이프라인 기능, 입출력 방향 지정
UNIX 특징
- Pipe : 먼저 입력된 데이터를 먼저 처리하는 선형 구조(FIFO) 형태로 통신 경로 확보
UNIX 파일 시스템
- 부트 블록
- 실린더 블록
- i-Node 테이블
- 사용자 ID, 그룹 ID, 보호모드, 블록 주소
- 처음 생성 시기, 마지막 사용 시기, 최종 수정 시기
- 파일 링크 수, 파일 속성
- 파일 테이블 블록
UNIX 주요 명령어
- Mount : 파일 시스템에 새로운 파일 시스템을 서브 디렉터리에 연결할 때 사용
댓글남기기