정보처리기사 실기 - 응용 SW 기초 기술 활용(1)

Minseol·2023년 3월 23일
0

정보처리기사

목록 보기
13/17

운영체제(OS; Operating System)

  • 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임

운영체제의 목적

  • 처리 능력(Throughput)
  • 반환 시간(Turn Around Time)
  • 사용 가능도(Availability)
  • 신뢰도(Reliability)

운영체제의 종류

Windows

  • 1990년대 마이크로소프트(Microsoft) 사가 개발한 운영체제

Windows의 주요 특징

  • 그래픽 사용자 인터페이스(GUI; Graphic User Interface)
  • 선점형 멀티태스킹(Preemptive Multi-Tasking)
  • PnP(Plug and Play, 자동 감지 기능)
  • OLE(Object Linking and Embedding)
  • 255자의 긴 파일명
  • Single-User 시스템

UNIX

  • AT&T 벨(Bell) 연구소, MIT, General Electric이 공동 개발한 운영체제

UNIX 시스템의 구성

커널(Kernel)

  • 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당

쉘(Shell)

  • 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기

유틸리티 프로그램(Utility Program)

  • 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용

LINUX

  • 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제

MacOS

  • 애플 사가 UNIX를 기반으로 개발한 운영체제

Android

  • 구글 사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제

iOS

  • 애플 사에서 개발한 유닉스 기반의 모바일 운영체제

기억장치 관리

기억장치의 관리 전략

  • 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것

종류

  • 반입(Fetch) 전략
  • 배치(Placement) 전략
  • 교체(Replacement) 전략

반입(Fetch) 전략

  • 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정
  • 기법으로는 요구 반입(Demand Fetch), 예상 반입(Anticipatory Fetch)이 있다.

배치(Placement) 전략

  • 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정

  • 기법으로는 최초 적합(First Fit), 최적 적합(Best Fit), 최악 적합(Worst Fit)이 있다.

교체(Replacement) 전략

  • 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정
  • 종류: FIFO, OPT, LRU, LFU, NUR, SCR 등

주기억장치 할당 기법

주기억장치 할당 기법의 분류

연속 할당 기법

  • 프로그램을 주기억장치에 연속으로 할당
  • 종류: 단일 분할 할당 기법, 다중 분할 할당 기법

분산 할당 기법

  • 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당
  • 종류: 페이징 기법, 세그먼테이션 기법

단일 분할 할당 기법

  • 한순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
  • 종류로는 오버레이 기법, 스와핑 기법이 있다.

오버레이(Overlay) 기법

  • 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법

스와핑(Swapping) 기법

  • 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체하는 기법

다중 분할 할당 기법

고정 분할 할당 기법 = 정적 할당 기법

  • 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비중인 프로그램을 각 영역에 할당하여 수행하는 기법

가변 분할 할당 기법 = 동적 할당 기법

  • 주기억장치를 미리 분할해 놓지 않고 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법

가상기억장치 구현 기법

  • 보조기억장치의 일부를 주기억장치처럼 사용하는 것
  • 가상기억장치의 일반적인 구현 방법: 페이징 기법, 세그먼테이션 기법

페이징(Paging) 기법

  • 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 주기억장치의 영역에 적재시켜 실행

세그먼테이션(Segmentation) 기법

  • 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행

페이지 교체 알고리즘

  • 페이지 부재(Page Fault)가 발생하면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정

  • 종류: OPT, FIFO, LRU, LFU, NUR, SCR 등

OPT(OPTimal replacement, 최적 교체)

  • 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체

FIFO(First In First Out)

  • 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체

LRU(Least Recently Used)

  • 최근에 가장 오랫동안 사용하지 않은 페이지를 교체

LFU(Least Frequently Used)

  • 사용 빈도가 가장 적은 페이지를 교체

NUR(Not Used Recently)

  • 최근에 사용하지 않은 페이지를 교체

SCR(Second Chance Replacement)

  • 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지

가상기억장치 기타 관리 사항

페이지 크기

  • 페이지 크기가 작을 경우: 페이지 단편화가 감소
  • 페이지 크기가 클 경우: 디스크 접근 횟수가 줄어들어 전체적인 입-출력의 효율성이 증가

Locality

  • 프로세스가 실행되는 동안 주기억장치를 참조할 떄 일부 페이지만 집중적으로 참조하는 성질

시간 구역성(Temporal Locality)

  • 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상

공간 구역성(Spatial Locality)

  • 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상

워킹 셋(Working Set)

  • 일정 시간 동안 자주 참조하는 페이지들의 집합

스래싱(Thrashing)

  • 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상

프로세스(Process)

  • 실행중인 프로그램을 의미

PCB(Process Control Block, 프로세스 제어 블록)

  • 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳

프로세스 상태 전이

제출(Submit)

  • 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태

접수(Hold)

  • 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태

준비(Ready)

  • 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태

실행(Run)

  • 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태

대기(Wait), 블록(Block)

  • 프로세스에 입출력 처리가 필요하면 현재 실행 중인 프로세스가 중단되고, 입출력 처리가 완료될 대까지 대기하고 있는 상태

종료(Terminated, Exit)

  • 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

실행(Run)에서 준비(Ready)로 바뀌는 경우

  • 선점, 시간 초과

프로세스 상태 전이 관련 용어

Dispatch

  • 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세스를 할당받아 실행 상태로 전이

Wake Up

  • 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정

Spooling

  • 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정

교통량 제어기(Traffic Controller)

  • 프로세스의 상태에 대한 조사와 통보 담당

스레드(Thread)

  • 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위

스케줄링(Scheduling)

  • 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

스케줄링의 종류

장기 스케줄링

  • 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업

중기 스케줄링

  • 어떤 프로세스들이 CPU를 할당받을 것인지 결정

단기 스케줄링

  • CPU를 할당받는 시기와 특정 프로세스를 지정

비선점(Non-Preemtive) 스케줄링

  • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
  • 종류: FCFS, SJF, 우선순위, HRN, 기한부 등

선점(Preemptive) 스케줄링

  • 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법

주요 스케줄링 알고리즘

FCFS(First Come First Service, 선입 선출) = FIFO(First In First Out)

  • 준비 상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법

SJF(Shortest Job First, 단기 작업 우선)

  • 준비상태 큐에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법

HRN(Highest Response-ratio Next)

  • 대기 시간과 서비스(실행) 시간을 이용하는 기법

  • 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여

  • 우선순위 계산식

우선순위 계산식 = (대기시간 + 서비스 시간) / 서비스시간

환경 변수(Environment Variable)

  • 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임

Windows의 주요 환경 변수

  • Windows에서 set을 입력하면 모든 환경 변수와 값을 출력

%ALLUSERSPROFILE%

  • 모든 사용자의 프로필이 저장된 폴더

%APPDATA%

  • 설치된 프로그램의 필요 데이터가 저장된 폴더

%COMSPEC%

  • 기본 명령 프롬프트로 사용할 프로그램명

%HOMEDRIVE%

  • 로그인한 계정의 정보가 저장된 드라이브

%HOMEPATH%

  • 로그인한 계정의 기본 폴더

%LOGONSERVER%

  • 로그인한 계정이 접속한 서버명

%PATH%

  • 실행 파일을 찾는 경로

%PATHEXT%

  • cmd에서 실행할 수 있는 파일의 확장자 목록

%PROGRAMFILES%

  • 기본 프로그램의 설치 폴더

%SYSTEMDRIVE%

  • Windows가 부팅된 드라이브

%SYSTEMROOT%

  • 부팅된 운영체제가 들어 있는 폴ㄷ

%TEMP% 또는 %TMP%

  • 임시 파일이 저장되는 폴더

%USERDOMAIN%

  • 로그인한 시스템의 도메인명

%USERNAME%

  • 로그인한 계정 이름

%USERPROFILE%

  • 로그인한 유저의 프로필이 저장된 폴더명

UNIX / LINUX의 주요 환경 변수

  • UNIX나 LINUX에서는 set, env, printenv, setenv 중 하나를 입력하면 모든 환경 변수와 값을 표시

$DISPLAY

  • 현재 X 윈도 디스플레이 위치

$HOME

  • 사용자의 홈 디렉터리

$LANG

  • 프로그램 사용 시 기본적으로 지원되는 언어

$MAIL

  • 메일을 보관하는 경로

$PATH

  • 실행 파일을 찾는 경로

$PS1

  • 쉘 프롬프트 정보

$PWD

  • 현재 작업하는 디렉터리

$TERM

  • 로긴 터미널 타입

$USER

  • 사용자의 이름

운영체제 기본 명령어

Windows 기본 명령어

DIR

  • 현재 디렉터리의 파일 목록을 표시

DIR의 옵션

  • /p: 목록을 한 화면 단위로 표시
  • /w: 목록을 가로로 나열하여 표시
  • /s: 하위 디렉터리의 정보까지 표시
  • /a: 지정한 속성이 설정된 파일 목록 표시

COPY

  • 파일을 복사

DEL

  • 파일을 삭제

TYPE

  • 파일의 내용을 표시

REN

  • 파일의 이름을 변경

MD

  • 디렉터리를 생성함

CD

  • 동일한 드라이브에서 디렉터리의 위치를 변경함

CLS

  • 화면의 내용을 지움

ATTRIB

  • 파일의 속성을 변경함
  • 속성을 지정할 때는 속성 앞에 +를, 해제할 때는 속성 앞에 -를 입력한다,

속성의 종류

  • r: 읽기 전용 속성
  • a: 저장/백업 속성
  • s: 시스템 파일 속성
  • h: 숨김 파일

ATTRIB 예시

// abc.txt의 파일 속성을 읽기 전용으로 변경
attrib +r abc.txt

FIND

  • 파일에서 문자열을 찾음
find "123" abc.txt

CHKDSK

  • 디스크 상태를 점검함

FORMAT

  • 디스크 표면을 트랙과 섹터로 나누어 초기화

MOVE

  • 파일을 이동함

UNIX / LINUX 기본 명령어

cat

  • 파일 내용을 화면에 표시

cd

  • 디렉터리의 위치를 변경

chmod

  • 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정함

사용자

  • u: user(소유자)
  • g: group(그룹)
  • o: other(다른 사용자)
  • a: all(모두)

설정기호

  • +: 권한 추가
  • -: 권한 삭제
  • =: 권한 부여

권한

  • r: read(읽기)
  • w: write(쓰기)
  • x: execute(실행)

chmod의 사용 예시(일반적)

// user에게 abc.txt 파일의 읽기, 쓰기, 실행 권한을 부여
chmod u=rwx abc.txt

chmod의 사용 예시(8진법)

  • 소유자-그룹-기타 사용자 순으로 권한을 의미함
  • 소유자가 rwx, 그룹이 rwx, 기타 사용자가 rx만 갖고 있다면 이를 8진법 숫자로 나타내면 775
chmod 775 batch.sh

chown

  • 파일 소유자와 그룹을 변경함

cp

  • 파일을 복사함

rm

  • 파일을 삭제함

find

  • 파일을 찾음

fsck

  • 파일 시스템을 검사하고 보수함

kill

  • PID(프로세스 고유 번호)를 이용하여 프로세스를 종료함
// PID가 1234이 프로세스를 종료
kill 1234

fork

  • 새로운 프로세스를 생성함

killall

  • 프로세스의 이름을 이용하여 프로세스를 종료함
// 프로세스의 이름이 gilbut인 모든 프로세스를 종료
killall gilbut

ls

  • 현재 디렉터리의 파일 목록을 표시

mkdir

  • 디렉터리를 생성

rmdir

  • 디렉터리를 삭제

mv

  • 파일을 이동함

ps

  • 현재 실행중인 프로세스를 표시

pwd

  • 현재 작업중인 디렉터리 경로를 화면에 표시

top

  • 시스템의 프로세스와 메모리 사용 현황을 표시

who

  • 현재 시스템에 접속해 있는 사용자를 표시
profile
귀여운 설이에양

0개의 댓글