본문 바로가기
IT License/정처기필기-4과목

2024 #정보처리기사 필기요약 #4-3. 운영체제 기초 활용

by 시뮝 2021. 3. 1.
728x90

참고1. 노랑마킹은 시험에 나온 중요한 부분입니다.

참고2. 주황강조는 약어 혹은 중요한 내용입니다.

참고3. 회색마킹은 예시입니다. 


제 4과목 프로그래밍 언어 활용


(1) 운영체제 기초 활용

운영체제(OS; Operating System) [2020년 3회]

  • 사용자로 하여금 컴퓨터의 하드웨어를 보다 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어이다.
  • 다중 사용자와 다중 운용 프로그램 환경하에서 자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링을 담당한다.
  • CPU, 메모리 공간, 기억장치, 입출력 장치 등의 자원을 관리한다.
  • 입출력 장치와 사용자 프로그램을 제어한다.
  • 운영체제의 종류로는 윈도즈, 리눅스/유닉스, 맥(Mac), 안드로이드(Android)가 있다.
  • 운영체제는 크게 인터페이스(쉘)와 커널(Kernel)의 구조이다.
  • 운영체제의 핵심 기능들이 커널에 모여있다면, 인터페이스(쉘)는 이러한 커널을 사용자가 보다 편리하게 사용할 수 있게 해준다.
  • 쉘(Shell)은 운영체제의 가장 바깥 부분에 위치해서 사용자 명령에 대한 처리를 담당하는 역할을 한다.
  • 커널(Kernel)은 하드웨워와 관련된 내부적인 역할을 담당한다.

운영체제의 특징

사용자 편리성 제공 / 인터페이스 / 스케줄링 / 자원 관리 / 제어 기능

운영체제의 종류

  • 윈도즈(Windows)
  • 리눅스/유닉스
  • 맥(Mac)
  • 안드로이드(Android)

운영체제에서의 커널(Kernel)의 기능 [2020년 3회, 4회]

  • 프로세스 생성, 종료
  • 기억장치 할당, 회수
  • 파일 시스템 관리

운영체제의 운용 기법

구분 설명
실시간 처리 시스템
(Real-Time Processing System)
데이터 발생 즉시 처리하여 결과를 산출하는 방식이다.
처리시간이 짧고 처리 비용이 낮다.
시분할 시스템
(Time Sharing System)
중앙 처리 장치의 시간을 각 사용자에게 균등하게 분할하여 사용하는 체제로서 모든 컴퓨터 사용자에게 똑같은 서비스를 제공하는 것을 목표로 삼고 있으며, 라운드 로빈 스케줄링을 사용한다.
일괄처리 시스템
(Batch Processing System)
일정 기간 또는 일정량의 데이터를 모아서 한꺼번에 처리하는 방식이다.
효율이 높고 시스템 자원을 독점하여 CPU 유휴 시간이 줄어든다.
사용자 측면에서는 처리량이 많아 반환 시간이 늦다.
분산처리 시스템
(Distributed Processing System)
물리적으로 떨어져 있는 클라이언트나 서버를 데이터베이스 서버와 네트워크로 연결시켜 사용자에게 하나의 시스템인 것처럼 데이터 처리를 가능하게 하는 시스템

 

 

윈도즈(Windows) 계열 운영체제

  • 윈도즈는 Dos 기반에서 개발된 OS로 현재는 사용자가 사용하기 편한 GUI 모드로 제공된다.
  • 윈도즈의 OS는 소스가 공개되지 않았으며, 소스가 공개된 OS로는 CentOS가 존재한다.
  • 트리 디렉터리 구조를 가진다.

윈도즈(Windows) 계열 운영체제 특징 (지선자 오)

  • 그래픽 사용자 인터페이스(GUI) 제공
  • 점형 멀티태스킹 방식 제공
  • 동감지 기능 제공
  • OLE(Object Linking and Embedding) 사용

유닉스 계열 운영체제 특징 (대다 사이계)

  • 화식 운영체제 기능 제공
  • 중 작업 기능 제공
  • 다중 용자 기능 제공
  • 식성 제공
  • 층적 트리 구조 파일 시스템 제공

유닉스와 리눅스의 차이점

차이점 항목 리눅스 유닉스
비용 대부분 무료, 일부 유료 대부분 유료
사용자 개발자, 일반 사용자 메인프레임 및 워크스테이션 등 대형 시스템 관리자
배포  오픈소스 개발  사업자에 의해 배포, 비용 수반됨
사용자 편의 GUI 제공, 파일 시스템 지원, BASH 셀 사용 커맨드 기반이 주였으나 GUI도 제공하는 추게, 파일 시스템 제공
활용 스마트폰, 태블릿 등 다양하게 사용 인터넷 서버, 워크스테이션 등 대형 시스템에 주로 사용

 


메모리 관리

메모리 관리 기법 (반배할교)

기법 설명
 기법 (When) 주기억 장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법
 기법 (Where) 디스크에 있는 프로세스를 주기억 장치의 어느 위치에 저장할 것인지 결정하는 기법
 기법 (How) 실행해야 할 프로세스를 주기억 장치에 어떤 방법으로 할당할 것인지 결정하는 기법
 기법 (Who) 재배치 기법으로 주기억 장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법

메모리 배치 기법의 유형 (초적악)

유형 설명
 적합(First Fit) 프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식
 접합(Best Fit) 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식 (공백 최소화)
 접합(Worst Fit) 가용 공간 중에서 가장 큰 공간에 할당하는 방식

주기억장치 메모리 할당 기법의 종류 (연단다 분페세)

종류 기법 설명
속 할당 기법 일 분할 할당 기법  -
중 분할 할당 기법  -
산 할당 기법 이징 기법
가상기억장치 내의 프로세스를 일정하게 분할하여 주기억장치의 분산된 공간에 적재시킨 후 프로세스를 수행시키는 기법
실제 공간은 페이지 크기와 같은 페이지 프레임으로 나누어 사용
그먼테이션 기법
가상기억장치 내의 프로세스를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 분할하고 메모리를 할당하는 기법
분할 형태가 배열이나 함수와 같은 논리적인 다양한 크기의 가변적인 크기로 관리
페이징/세그먼테이션 기법 하나의 세그먼트를 정수 배의 부분 페이지로 다시 분할하는 방식

메모리 교체 기법 유형

세부 기법 설명
FIFO
(First In First Out)
가장 먼저 들어와 가장 오래 있던 페이지 교체 (선입선출)
LRU
(Least Recently Used)
가장 오랫동안 사용되지 않은 페이지 교체
LFU
(Least Frequently Used)
참조(사용) 횟수가 가장 적은 페이지 교체
OPT
(OPTimal Replacement)
앞으로 가장 오랫동안 사용하지 않을 페이지 교체
NUR
(Not Used Recently)
LRU와 비슷한 알고리즘, 최근 사용 여부를 확인하기 위해 페이지마다 참조 비트와 변형 비트 사용
SCR
(Second Change Replacement)
FIFO 기번의 단점 보완, 가장 오랫동안 사용되지 않은 페이지 중 자주 사용되는 페이지 교체 방지

메모리 단편화 해결방안 (내슬 외버 공통압)

구분 해결방안
부 단편화 Slab Allocator
부 단편화 디 메모리 할당, (통)합,

 


지역성(Locality)

  • 지역성(국부성, 구역성, 국소성)
  • 프로세서들은 기억장치 내의 정보를 균일하게 접근하는 것이 아니라, 어느 한 순간에 특정 부분을 집중적으로 참조한다.
  • 시간 지역성의 예는 "순환, 부 프로그램, 스택" 등이 있다. [2023년 2회]
  • 공간 지역성의 예는 "순차적 코드의 실행"이 있다.

지역성의 유형 (시공순)

간 지역성 / 간 지역성 / 차 지역성

현상 유형

유형 설명
지역성 (Locality) 프로세스가 실행되면서 하나의 페이지를 일정시간 동안 집중적으로 액세스 하는 현상
스레싱 (Thrashing) 프로세스의 처리 시간보다 페이지 교체 시간이 더 많아지는 현상
워킹 셋 (Working Set) 프로세스가 일정 시간동안 자주 참조하는 페이지들의 집합
프리페이징 (Prepaging) 사용될 페이지라고 예측되어지는 페이지를 미리 적재하는 것

 


프로세스

프로세스 상태의 종류 (생준 실대완) [2020년 1회]

성(Create) / 비(Ready) / 행(Running) / 기(Waiting) / 료(Complete) / Exit

프로세스 상태 전이

디스패치(Dispatch) / 할당 시간 초과(Timeout) / 입출력 발생(Block) / 깨움(Wake-up)

프로세스 구성요소

사용자 작성 코드 / 사용자 사용 데이터 / 스택(Stack) / 프로세스 제어 블록(PCB; Process Control Block)

PCB 구성요소 (프상카레 스계입메)

  • PID(로세스 식별자)
  • 프로세스
  • 프로그램 운트
  • 지스터 저장 영역
  • 프로세서 케줄링 정보
  • 정 정보
  • 출력 상태 정보
  • 모리 관리 정보

스레드(Thread) [2020년 1회]

  • 스레드는 프로세스보다 가벼운, 독립적으로 수행되는 순차적인 제어의 흐름이며, 실행 단위이다.
  • 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.
  • 스레드는 그들이 속한 프로세스의 자원과 메모리를 공유한다.
  • 다중 프로세스 구조에서 각 스레드는 다른 프로세스에서 병렬로 실행될 수 있다.
  • 한 개의 프로세스는 여러 개의 스레드를 가질 수 있다.

프로세스 스케줄링

프로세스 스케줄링은 CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업이다.

프로세스 스케줄링 유형

선점형 스케줄링(Preemptive Scheduling) / 비선점형 스케줄링(Non Preemptive Scheduling)

선점 스케줄링 알고리즘

유형 설명
라운드 로빈 (RR; Round Robin) 시간 할당이 작아지면 프로세스-문맥 교환이 자주 일어난다.
Time Sharing System을 위해 고안된 방식이다.
시간 할당이 커지면 FCFS 스케줄링과 같은 효과를 얻을 수 있다.
SRT (Shortest Remaining Time First)
짧은 수행 시간 프로세스 우선 수행
이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 있다.(선점)
다단계 큐 (MLQ; Multi Level Queue) 독립된 스케줄링 큐
다단계 피드백 큐 (MFQ; Multi-Level Feedback Queue) FIFO + RR의 혼합, 마지막 단계는 RR로 처리

 

비선점 스케줄링 알고리즘 (우기 HFS)

선순위(Priority) / 한부(Deadline) / HRN(Highest Response Ratio Next) / FCFS(Fist Come First Service) / SJF(Shortest Job First)

알고리즘 유형 동작 방식 특징
선순위
(Priority)
각 프로세스 별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당함, 동일 순위는FCFS로 처리 주요/긴급 프로세스에 대한 우선처리
한부
(Deadline)
작업들이 명시된 시간이나 기한 내에 완료되도록 계획 요청에 명시된 시간내 처리를 보장
FCFS
(Fist Come First Service)

프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당함 도착한 순서대로 처리
FIFO 알고리즘이라고도 함
SJF
(Shortest Job First)
프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유 기아 현상 발생 가능성
HRN
(Highest Response Ratio Next)

대기시간이 긴 프로세스일 경우 우선순위가 높아진다.
기아 현상 최소화 기법
SJF 기법을 보완하기 위한 방식이다.
긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 수 있다.
우선순위를 계산하여 그 수치가 가장 높은 것부터 순서대로 우선순위가 부여된다.
HRN 우선순위 계산식 = (대기시간+서비스시간)/서비스시간

 

HRN 기출문제 [2020년 3회]

HRN 방식으로 스케줄링할 경우, 입력된 작업이 다음과 같을 때 처리되는 작업 순서는?

작업 대기시간 서비스(실행) 시간
A 5 20
B 40 20
C 15 45
D 20 2

풀이과정: HRN 우선순위 계산식을 활용하여 수치가 가장 높은 순서부터 나열

정답은 D → B → C → A 이다.

작업 HRN 우선순위 계산식 적용 작업 순서
A (5 + 20) / 20 = 1.25 4
B (40 + 20) / 20 = 3 2
C (15 + 45) / 45 = 1.34 3
D (20 + 2) / 2 = 11 1



 

프로세스 관리-교착상태

교착상태(Deadlock)

교착상태는 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태이다.

교착상태 발생 조건 (상점비환) [2020년 1회]

  • 호배제(Mutual Exclusive)
  • 유와 대기(Block & Wait)
  • 선점(Non Preemption)
  • 형 대기(Circular Wait)

교착상태 해결방법 (예회발복) [2020년 1회]

발생 조건 세부 기법
방 (Prevention) 점유 자원 해제 후 새 자원 요청
피 (Avoidance) 은행가 알고리즘(Banker's Algorithm), Wound-Wait, Wait-Die
견 (Detection)  자원할당 그래프, Wait for Graph
구 (Recovery) 프로세스 Kill, 자원선점

 


환경변수

환경변수(Environment Variable)

환경 변수는 프로세스가 컴퓨터에서 동작하는 방식에 많은 영향을 미치는 동적 값들의 모임이다.

 

UNIX Shell

  • 명령어 해석기이다.
  • 시스템과 사용자 간의 인터페이스를 담당한다.
  • 여러 종류의 쉘이 있다.

UNIX Shell 환경 변수를 출력하는 명령어 [2020년 3회, 4회]

printenv / env / setenv

 


쉘 스크립트(Shell Script)

쉘 스크립트는 쉘이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 운영체제를 위해 사용되는 스크립트이다.

쉘 스크립트 기능

파일 이용 / 프로그램 실행 / 문자열 출력 등

운영체제 기본 명령어

운영체제를 제어하기 위한 방법은 CLI와 GUI가 있다.

방식 설명
CLI (Command Line Interface) 사용자가 직접 명령어를 입력, 컴퓨터에게 명령을 내리는 방식이다.
GUI(Graphic User Interface) 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식이다.

리눅스/유닉스 계열 운영체제의 기본 명령어 [2021년 1회

  • 리눅스와 유닉스 명령어는 쉘에서 입력할 수 있다.
  • 리눅스는 최상위 유저를 CLI 환경에서 #으로 표시하며, 일반 유저를 $로 표시한다.
구분 명령어 설명
시스템관련 uname
버전 확인
uname -a 시스템의 모든 정보 출력
uname -r  운영체제의 배포 버전 출력
cat 파일 내용 출력
uptime 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인
사용자 id 사용자의 로그인명, id, 그룹 id 등을 출력
last 시스템의 부팅부터 현재까지의 모든 사용자의 로그인과 로그아웃에 대한 정보 표시
who 호스트에 로그인한 사용자 정보 출력
파일처리 ls 자신이 속해있는 폴더 내에서의 파일 및 폴더들 표시
pwd print working directory의 약자, 현재 디렉터리의 절대 경로 출력
rm 파일 삭제
cp 파일 복사
mv 파일 이동
프로세스 ps 현재 실행되고 있는 프로세스 목록 출력
pmap 프로세스ID를 기준으로 메모리 맵 정보를 출력
kill pid 특정 프로세스 종료
fork 새로운 프로세스를 생성
파일 권한 chmod 특정 파일 또는 디렉토리의 퍼미션 수정
chown 파일이나 인터페이스를 설정하거나 확인
네트워크 ifconfig 네트워크 인터페이스를 설정하거나 확인
host 도메인(호스트) 명은 알고 있는데 ip 주소를 모르거나 혹은 그 반대의 경우에 사용
압축 tar 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용
gzip 파일을 묶거나 풀 수는 없지만 압축을 담당
검색 grep 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어
find 특정한 파일을 찾는 명령어
동기화 rsync 로컬 또는 원격의 파일과 디렉토리를 복사하고 동기화하는 명령어
디스크 사용 df 시스템에 마운트된 하드디스크의 남은 용량을 확인할 때 사용
du 파일 사이즈를 kbyte 단위로 출력
디렉터리 이동 cd 디렉터리를 이동

 


#참고 

스케줄링 알고리즘 풀이 예시문제 (작성중)
https://simuing.tistory.com/entry/2021-정보처리기사-필기요약-풀이-스케줄링-알고리즘-예시문제

 

 

 

 

728x90

댓글