정보처리기사

[정보처리기사] 운영체제

hminor 2023. 7. 21. 20:43

강의를 들으면서 헷갈리는 것만 정리하기

아예 기억조차 안나면 헤드에 볼드체와 🔅로 정리

1회차

잠시 헷갈린 것

  • 통신 프로토콜 기본 구성 요소(구의타)
    • 구문
    • 의미
    • 타이밍

운영체제

  • 기억장치
    • 종류
      • 레지스터
        • CPU와 속도가 비슷
      • 캐시 메모리
      • 주기억장치
        • 프로세스가 올라가는 곳
      • 보조기억장치
        • 프로그램 설치
        • HHD, SSD
      • 연관 메모리
        • 내용을 기반으로 접근하는 것
  • 시스템 소프트웨어
    • 개념
      • 고철이 돌아가게끔 도와주는 소프트웨어
      • EX) 운영체제
    • 시스템 소프트웨어 종류
      • 로더
        • 주기억장치에 프로세스를 올리는 역할
      • 링커
        • 목적 파일을 실행 파일로 변환해 주는 프로그램
          • C 언어 처리과정
            • 전처리기
            • 컴파일러
            • 어셈블러
            • 링커
      • 유틸리티
      • 번역기
      • 장치 드라이버
      • 운영체제
    • 시스템 소프트웨어 - 제어 프로그램 종류(감작데)
      • 감시 프로그램
      • 작업 프로그램
      • 데이터 관리 프로그램
  • 운영체제
    • 기능
      • 프로세스 관리
      • 메모리 관리
      • 파일 관리 - 파일 디스크립터
      • 명령해석
        • 쉘: 명령을 해석해서 커널에게 전달
        • 커널
    • 운영체제 운용 기법
      • 실시간 처리 기법
      • 일괄 처리 기법
      • 다중 프로그래밍 시스템
        • 여러개의 프로그램이 동시에 돌아가도록 하는 것으로 시분할, 다중 처리 시스템이 역할을 할 수 있도록 도와준다.
      • 시분할 시스템
      • 다중 처리 시스템
        • 처리기(CPU)를 여러개 둬서 다중으로 처리하도록 하기.
        • EX) Intel 4 Core
      • 다중 모드 시스템
      • 분산 처리 시스템
  • 유닉스 시스템
    • 구성
      • 커널: 실제로 Core 역할로 프로세스, 메모리, 파일 관리 등을 처리
      • 쉘: CMD 같은거
    • 유닉스 파일 시스템
      • 부트 블록: 부팅
      • 슈퍼 블록: 전체 파일 시스템에 대한 정보
      • I-node 블록: 파일이나 디렉터리에 대한 정보
      • 데이터 블록: 실제 파일에 대한 데이터 정보
    • 파일 디스크립터
      • 유닉스 시스템에서 프로세스가 파일들을 접근할 때 이용
    • POSIX(Portable Operating System Interface)
      • 이식 가능한 운영체제 인터페이스
  • 단편화 해결 방법
    • 통합: 인접해 있는 공간을 하나로 통합
    • 압축: 주기억장치 내 분산되어 있는 단편화 공간들을 통합
      • 압축을 하고 난 다음 재배치 기법을 사용함.
    • 재배치: 프로그램의 주소를 새롭게 지정해주는 기법
  • 페이징 기법
    • 기억장소 효율: 단편화에 반비례
      • 즉 단편화가 증가될 수록 기억장소 효율은 줄어듬
    • 페이지 크기가 작을 때
      • 기억장소 효율: 증가
      • 단편화: 감소
      • 입출력 시간: 증가
      • 맵 테이블 : 증가
    • 페이지 크기가 클 때
      • 기억장소 효율: 감소
      • 단편화: 증가
      • 입출력 시간: 감소
      • 맵 테이블 : 감소
  • 페이지 부재
    • 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상
      • 페이지 부재시 발생하는 현상 ⇒ 스레싱 현상
        • 프로세스 처리보다 페이지 교체시간이 더 많은 시간이 들 때
      • 스레싱 현상을 방지하기 위해 ⇒ 지역성
        • 개념
          • 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
          • 쉽게 생각하면, 배열을 사용한다라고 했을 때 배열에 관련된 모든것들을 함께 가져가는 것을 의미
        • 지역성 종류
          • 시간 지역성
          • 공간 지역성
  • 페이지 교체
    • Belady’s Anomaly 이상 현상
      • 프레임 개수를 늘리면 부재 발생이 감소해야 하나, 오히려 더 늘어나는 이상 현상
  • 병행 프로세스
    • 해결책
      • 임계구역
      • 상호배제
      • 동기화 기법
        • 스레드들에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정해주는 기법
        • 종류
          • 세마포어
            • 이진 세마포어
            • 계수 세마포어
          • 모니터
  • 교착상태
    • 아래의 4가지가 만족하게 되면 교착상태가 발생할 수 있게 된다.
      • 상호배제: 공유 자원은 하나의 프로세스만이 사용
      • 점유와 대기: 자원을 점유 하면서 다른 프로세스의 자원을 추가로 요구하며 대기
      • 비선점: 강제로 빼앗을 수 없음
      • 환형 대기: 각 프로세스가 순차적으로 다음 프로세스가 요구하고 있는 자원을 가지고 있는 상태
    • 교착상태 해결 방법
      • 발견 기법
      • 회피 기법
        • 은행가 알고리즘
      • 예방 기법
      • 회복 기법
  • 디스크 스케줄링 - N-STEP SCAN
    • 기본적으로 SCAN 방식을 두고 기하현상을 방지하기 위해 진행중 들어오는 요청은 처리 X
  • 디스크 스케줄링 - 에션바흐(Eschenbach)기법
    • 부하가 매우 큰 항공 예약 시스템을 위해 개발
  • 로그 파일
    • 리눅스 로그 종류
      • message: 시스템 로그 파일
      • secure: 보안인증 관련 메시지 로그 파일
      • maillog: 메일 로그 파일
      • xferlog: ftp 로그파일
      • dmesg: 부팅시의 시스템 로그
      • wtmp: 전체 로그인 기록
      • utmp: 현재 로그인 사용자에 대한 기록
      • btmp: 로그인 실패 정보 기록
      • lastlog: 가장 최근 로그인 기록
  • 스토리지
    • 종류
      • DAS: DIRECT
      • NAS: NETWORK
      • SAN: STORAGE
  • RAID
    • 개념
      • 복수의 하드디스크를 하나의 드라이브와 같이 인식하고 표기.
    • RAID 구성
      • 스트라이핑
        • 논리적으로 연속된 데이터들이 물리적으로 여러 개의 디스크에 RR 방식으로 저장
      • 미러링
        • 데이터를 그래도 복제하는 것으로 신뢰성 및 가용성 확보를 위해 사용
    • RAID 레벨
      • RAID-0: 스트라이핑
      • RAID-1: 미러링
      • RAID-2: 해밍코드 오류 정정
      • RAID-3: 하나의 디스크는 패리티 정보, 나머지는 데이터 저장
      • RAID-4: RAID-3번과 같은 형태, 블록 단위로 분산 저장
      • RAID-5: 각각의 디스크에 패리티 정보 저장
      • RAID-6: 하나의 패리티를 두 개의 디스크에 분산 저장

2회차

  • 기억장치
    • 종류
      • 레지스터
      • 캐시 메모리
      • 주기억장치
      • 보조기억장치
      • 연관 메모리
  • 시스템 소프트웨어
    • 개념
      • 컴퓨터 외관 즉 고철 덩어리를 컴퓨터처럼 사용할 수 있게 하는 것
    • 시스템 소프트웨어 종류
      • 로더: 목적 프로그램을 메모리에 적재하고 배치 주소를 옮기는 프로그램
        • 즉, 실행 프로그램을 주기억장치의 특정 주소로 옮기는 역할
      • 링커: 목적 파일을 실행 파일로 변환해 주는 프로그램
      • 유틸리티
      • 번역기(컴파일러, 어셈블러)
      • 장치 드라이버
      • 운영체제
        • 기능
          • 프로세스 관리
            • 프로세스 스케줄링
          • 메모리 관리
          • 파일 관리: 파일 디스크립터
          • 입출력 관리
          • 보조기억장치 관리
          • 네트워킹
          • 정보 보안 관리
          • 명령 해석
    • 시스템 소프트웨어의 구성
      • 제어 프로그램(감작데)
        • 감시 프로그램
        • 작업 프로그램
        • 데이터 관리 프로그램
      • 처리 프로그램
        • 서비스 프로그램
        • 문제 프로그램
        • 언어 번역 프로그램
  • 운영체제 종류
    • 유닉스
      • 구성요소
        • 커널
        • 쉘(CMD 같은거)
        • 유틸리티 프로그램
      • 유닉스 파일 시스템 종류
        • 슈퍼 블록: 파일 전체 시스템
        • 부트 블록: 부팅시
        • I-node 블록: 파일이나 디렉터리에 대한 정보
        • 데이터 블록: 실제 파일에 대한 데이터 정보
      • POSIX(Portable Operating System Interface)
        • 이식 가능한 운영체제 인터페이스
  • 단편화
    • 단편화 해결 방법
      • 통합: 인접해 있는 공간을 하나로 통합
      • 압축: 주기억장치 내 분산되어 있는 단편화 공간들을 통합
      • 재배치 기법: 프로그램의 주소를 새롭게 지정
  • 가상기억장치 기타 관리사항
    • 지역성
      • 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
      • 즉, 프로세스 실행시 필요한 것을 함께 가져간다고 하심..?
    • 지역성 종류
      • 시간 지역성
        • Loop, Stack, 부 프로그램 등
      • 공간 지역성
        • 배열순회, 순차적 코드 실행 등
    • 워킹 셋
      • 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
    • 스레싱
      • 프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
  • 프로세스
    • 스레드
      • 프로세스 내에서 실행되는 흐름의 단위
    • 메모리상의 프로세스 영역
      • 코드 영역: 프로그램 코드
      • 스택 영역: 함수 내 지역 변수
      • 힙 영역: 동적 할당
      • 데이터 영역: 정적 변수, 전역 변수
    • 프로세스 상태 전이
      • 준비 → 실행 시엔 프로세서가 된다.
    • 문맥교환
      • 이전의 프로세스의 상태를 보관하고 또 다른 프로세스를 레지스터에 적재하는 과정
  • 스케줄링 알고리즘
    • 선점형
      • SRT
        • CPU 점유 시간이 가장 짧은 프로세스에 먼저 할당
        • 즉, 남은 시간이 적은 것부터 실행
      • MLQ
        • 그룹에 따라 각기 다른 준비 상태 큐를 사용
      • MLFQ
        • FCFS 순서로 CPU 할당을 받아 실행 후, 할당 받은 시간이 끝나면
          다음 단계의 준비 큐로 이동
    • 비선점
      • HRN
        • 우선순위
          • (실행시간 + 대기시간) / 실행시간
  • 병행 프로세스
    • 개념
      • 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것
    • 병행 프로세스 문제 해결책
      • 임계 경로
        • 공유 자원에 대해서 한 순간에는 반드시 하나의 프로세스만 사용되도록 지정한 영역
      • 상호 배제
        • 하나의 프로세스가 공유 메모리 혹은 공유 파일을 사용하고 있을 때 다른 프로세스들이 사용하지 못하도록 배제시키는 제어 기법
        • 상호 배제 기법
          • 데커의 알고리즘
          • 피터슨의 알고리즘
          • 다익스트라 알고리즘
          • 램포트의 베이커리 알고리즘
    • 동기화 기법
      • 개념
        • 스레드들에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정해주는 기법
      • 종류
        • 세마포어
          • 이진 세마포어: flag 같은거
          • 계수 세마포어
        • 모니터
  • 교착상대
    • 개념
      • 상호 배제에 의해 나타나는 문제점으로 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
    • 교착 상태 해결 방법
      • 발견 기법
      • 회피 기법: 은행가 알고리즘
      • 예방 기법
      • 회복 기법
  • 디스크 스케줄링
    • 에션바흐 기법
      • 부하가 큰 항공 예약 시스템을 위해 개발
  • 환경변수
    • UNIX/Linux 환경변수
      • env, set, printenv 명령어들을 사용하여 환경변수와 그에 따른 모든 값을 볼 수 있다.
      • export 명령을 이용해 사용자 환경변수를 전역변수로 설정할 수 있다.
  • 로그 파일
    • 리눅스 로그 종류
      • message: 시스템 로그 파일
      • secure: 보안인증 메시지 로그 파일
      • mailog: 메일 로그 파일
      • xferlog: ftp 로그파일
      • dmesg: 부팅시 시스템 로그
      • wtmp: 전체 로그인 기록
      • utmp: 현재 로그인 사용자의 로그
      • btmp: 로그인 실패 로그
      • lastlog: 각 계정들의 가장 최근 로그인 기록
  • RAID
    • RAID-0: 스트라이핑
    • RAID-1: 미러링
    • RAID-2: 해밍코드 오류정정
    • RAID-3: 하나의 디스크엔 패리티 정보 담기
    • RAID-4: RAID-3번 + 블록 단위로 저장
    • RAID-5: 각 디스크에 패리티 정보 저장
    • RAID-6: 하나의 패리티를 두 개의 디스크에 분산 저장

3회차

  • 시스템 소프트웨어의 종류
    • 로더
      • 목적 프로그램을 메모리에 적재하고 배치 주소를 옮기는 프로그램
    • 링커
      • 목적 파일을 실행 파일로 변환해주는 프로그램
    • 유틸리티
    • 번역기
    • 장치 드라이버
    • 운영체제
  • 시스템 소프트웨어의 구성
    • 제어 프로그램(감작데)
    • 처리 프로그램
  • 운영체제 운용 기법
    • 일괄 처리 프로그램
    • 실시간 처리 프로그램
    • 다중 프로그래밍 시스템
    • 시분할 시스템
    • 다중 처리 시스템
    • 다중 모드 시스템
    • 분산 처리 시스템
  • 유닉스 - POSIX(Portable Operating System Interface)
    • 이식 가능한 운영체제 인터페이스
  • 가상기억장치 기타 관리사항
    • 지역성
      • 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
    • 지역성의 종류
      • 시간 지역성(구역성)
        • Loop, Stack, 부 프로그램(Sub Routine) 등
      • 공간 지역성(구역성)
        • 배열 순회, 순차적 코드 실행 등
  • Belady’s Anomaly 이상 현상
    • 잦은 페이지 교체로 인해 프레임 개수를 늘린다고 한들 오히려 더 늘어나는 이상현상
  • 병행 프로세스 문제점과 해결책
    • 문제 해결책
      • 임계구역
      • 상호 배제
        • 데커의 알고리즘
        • 피터슨의 알고리즘
        • 다익스트라 알고리즘
        • 램포드의 베이커리 알고리즘
      • 동기화 기법
        • 스레드들에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정해주는 기법
        • 세마포어(이진, 계수), 모니터
  • 교착상태 해결 방법
    • 발견 기법
    • 회피 기법: 은행원 알고리즘
    • 회복 기법
    • 예방 기법