Please enable JavaScript.
Coggle requires JavaScript to display documents.
시구-운영체제_개요 - Coggle Diagram
시구-운영체제_개요
기억장치
배치 전략: 최초 적합, 최적 적합, 최악 적합
단편화: 내부 단편화(할당 후 남는 공간), 외부 단편화(미사용)
단편화 해결 방법: 통합(인접 공간 합병), 압축(쓰레기 수집)
가상기억장치: 페이징 기법(디스크:페이지, 주기억장치:페이지프레임/블록), 가상주소형식(가상주소=페이지번호+변위)
PMT: 동적 주소변환을 위한 페이지 위치 정보가 저장된 테이블
직접 사상 방법, 연관 사상 방법
세그멘테이션 기법: 가상 주소(다양한 크기 단위인 세그먼트), SMT, 동적 주소 변환, 레코드 크기 넘으면 오버플로우 에러
페이지 교체 알고리즘: OPT(최적교체, 앞으로 가장 사용하지 않을 만한 페이지 교체, 미리 예측-실현 가능성 낮음), FIFO(프레임 수 증가 페이지 부재 증가하는 벨라디의 모순), LRU(가장 오랫동안 미참조, 스택), LFU(사용빈도, 참조횟수 카운터), NUR(참조/변경 비트), 이차기회(한번은 봐주는 FIFO, 처음 참조비트 1로 셋팅)
커널과 인터페이스
커널: 운영체제 핵심 기능(프로세스/메모리/저장장치 관리 등), 메모리 상주하여 시스템 자원 관리
인터페이스: 사용자와 OS 사이의 통로, GUI/커멘드 쉘
시스템 호출: 커널이 자신 보호, 사용자가 OS 기능 사용 가능하게
드라이버: 커널과 하드웨어의 인터페이스, 디바이스 드라이버
유틸리티: 다양한 보조 프로그램, 메모리 비상주
종류: 단일형 구조 커널(MS-DOS), 게층형(계층 간 통신), 마이크로(기본 기능만 제공)
링커와 로더
링커: 컴파일러가 생성한 목적 프로그램, 별도 라이브러리, 기타 모듈을 서로 연결하여 실행가능한 로드 모듈을 만드는 시스템 S/W
로더: 로드 모듈을 주기억장치에 적재하는 시스템 S/W
로더의 기능: 할당-연결-재배치(상대주소->절대주소)-적재
로더의 종류: Compile and Go 로더, 절대 로더(적재만), 직접 연결 로더(상대 로더), 동적 적재 로더(일부만 적재, 프로그램 크기)
메모리 영역
코드(텍스트) 영역: 실행할 프로그램 코드, 읽기 전용 영역
데이터 영역: 전역 변수, 정적 변수
힙 영역: 사용자 동적 할당, 런 타임에 크기 결정
스택 공간: 지역 변수, 매개변수, 컴파일 타임에 크기 결정
프로세스
PCB: OS가 프로세스 관리 위한 정보 저장(프로세스 식별자, 프로세스 현재상태, 우선순위 정보, 하드웨어상태, 스케줄링 정보(CPU 사용시간, 대기시간), 기억장치정보, 파일관리정보(권한)
상태 전이
준비(Ready): CPU 선택 기다림, PCB
실행(Run): CPU 배당 받아 실행
대기(Wait): 어떤 사건을 기다림, 주로 입출력작업, Asleep 상태
완료/종료(Halt): 완전종료, 시스템에서 제거, PCB 제거
Dispatch: 준비 -> 실행
Time out: 실행 -> 준비
Block: 실행 -> 대기
Wake up: 대기 -> 준비, 대기에서 바로 실행으로 갈 수 없음
스레드
단일 스레드, 다중 스레드(멀티 스레드), 스레드들은 코드, 데이터, 힙을 공유하고, 스택과 레지스터는 독립적, 효율적 문맥교환, OS 성능 개선
장점: 성능과 처리율 향상, 응답시간 단축, 실행환경 공유, 통신 향상
단점: 멀티스레드 순서 모름, 경쟁조건 결과 예측 불가
사용자 수준 스레드: 사용자 영역, 커널 수준 스레드와 다대일 매핑
TCB: 식별자, 상태, PC, 레지스터, 우선순위, SP, 문맥정보
상호 배제 알고리즘: 데커, 피터슨, 램포트 베이커리(번호표)
쓰레싱
너무 자주 페이지 교체 발생, 심각한 성능 저하 초래
원인: 다중 프로세스 정도가 심함, 메모리 부족, 지역성 붕괴, 부적절한 페이지 교체 정책
방지책: 페이지 부재 빈도(상한 초과 프레임 추가, 하한 미만 회수), 작업 집합 모델(최근 일정시간 동안 참조한 페이지 집합 유지)
스케줄링
비선점 방식: 완료까지 CPU 사용, 일괄처리시스템 적합, 대화식 시분할 시스템에는 부적절, FCFS, SJF, HRN(응답률=( 대기시간+서비스시간) / 서비스시간), 우선순위 스케줄링, 기한부 스케줄링
선점 방식: 강제로 뺏는 방식, 시간할당량 초과나 입출력 발생 시, 시분할 시스템, 오버헤드 증가, 인터럽트 클럭, Round Robin, SRT, 다단계 큐(단계별 우선순위), 다단계 피드백 큐(무조건 처음 큐에 들어감, 큐마다 시간할당량이 다름, 아래 큐로 이동 가능)