[CS] 정보처리기능사 실기_01.운영체제 기초 활용

본 문서는 정보처리기능사 실기 시험 대비용 필기입니다

운영체제 기초 활용

운영체제의 개념

운영체제 (OS, Operating System)

  • 운영체제의 정의
    • 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
    • 유저와 하드웨어간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종
    • 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경 제공
  • 운영체제의 목적
    • 처리능력(Throughput)
    • 반환시간(Turn Around Time)
    • 사용 가능도(Availability)
    • 신뢰도(Reliability)
  • 운영체제의 구성
    • 제어 프로그램 (Control Program)
      • 감시 프로그램(Supervisor Program)
      • 작업 제어 프로그램(Job Control Program)
      • 자료 관리 프로그램(Data Management Program)
    • 처리 프로그램(Processing Program)
      • 언어 번역 프로그램(Language Translate Program)
      • 서비스 프로그램(Service Program)
      • 문제 프로그램(Problem Program)
  • 운영체제의 종류
    • Windows
    • UNIX
    • LINUX
    • MacOS
    • MS-DOS
    • Android
    • iOS
  • 운영체제 운용 기법의 발달 과정
    • 일괄 처리 시스템(Batch Processing System)
      • 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식
    • 다중 프로그래밍 시스템(Multi-Programming System)
      • 하나의 CPU와 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
    • 시분할 시스템(Time Sharing System)
      • 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리해 줌으로써 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 주는 것 (=Round Robin)
    • 다중 처리 시스템(Multi-Processing System)
      • 여러 개의 CPU와 하나의 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
    • 실시간 처리 시스템(Real Time Processing System)
      • 데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식
    • 범용 시스템(General-Purpose System)
      • 일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식 (=다중 모드 처리 시스템)
    • 분산 처리 시스템(Distributed Processing System)
      • 여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식

Windows

컴퓨터 시스템의 하드웨어를 효율적으로 관리하고 유저에게는 더 편리한 컴퓨터 환경을 제공하기 위해 만들어진 개인용 컴퓨터 시스템의 운영체제

Windows의 특징

  • 그래픽 사용자 인터페이스(GUI)
    • 키보드로 명령어를 입력하지 않고, 아이콘이나 메뉴를 마우스로 선택하여 모든 작업을 수행하는 사용자 작업 환경
  • 선점형 멀티태스킹(Preemptive Mulit-Tasking)
    • 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제로 종료시키고, 모든 시스템 자원을 반환하는 멀티 태스킹 운영방식
  • 32bit 또는 64bit 데이터 처리
  • FAT32 파일 시스템
    • 파일 시스템 : 보조기억장치에 저장되는 파일을 수정, 삭제, 추가, 검색하는 등의 관리 시스템
    • File Allocation Table, FAT
  • 플러그 앤 플레이(PnP; Plug & Play)
    • 컴퓨터 시스템에 새로운 하드웨어를 장착하고 시스템을 가동시키면 자동으로 하드웨어를 인식하고 실행하는 기능
  • OLE(Object Linking and Embedding)
    • 다른 여러 응용프로그램에서 작성된 문자나 그림 등의 개체(Object)를 현재 작성중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능
  • 255자의 긴 파일 이름
    • VFAT(Virtual File Allocation Table)을 이용하여 최대 255자까지 지정 가능
  • 향상된 네트워크 기능
  • DOS와 호환

바로 가기 키(단축키)

키보드의 키를 조합하여 명령어 대신 특정 앱이나 명령을 빠르게 실행하는 기능
단축키 또는 Hot key라고도 한다

UNIX / LINUX

UNIX

  • UNIX 개요 및 특징
    • 1960년대 AT&T 벨 연구소, MIT, GE이 공동 개발한 운영체제
    • 시분할 시스템을 위해 설계된 대화식 운영체제
    • Open Source System
    • 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다
    • 크기가 작고 이해하기 쉽다
    • Multi-User, Multi-Tasking
    • 많은 네트워킹 기능을 제공하므로 네크워크 관리용 운영체제로 적합
    • 계층적 트리 구조의 파일 시스템을 가짐
    • 표준 입출력을 통해 명령어들이 파이프라인으로 연결됨
  • UNIX 시스템의 구성
    • 커널(Kernel)
      • UNIX의 가장 핵심 부분
      • 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행
      • 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당
      • 프로세스(CPU 스케쥴링) 관리, 기억장치 관리, 파일 관리, 입출력 관리, 데이터 전송 및 변환 등 여러가지 기능 수행
    • 쉘(Shell)
      • 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
      • 명령을 해석하여 커널로 처리할 수 있도록 전달해주는 명령 인터프리터, 단말 장치를 통해 유저로부터 명령어를 입력받음
      • 공용 Shell(Bourne Shell, C Shell, Korn Shell)이나 유저 자신이 만든 Shell을 사용할 수 있음
    • 유틸리티 프로그램
      • 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용
      • DOS에서의 외부 명령어에 해당
      • 유틸리티 프로그램에는 에디터(ex. vi, ed, emacs, pico, joe), 컴파일러, 인터프리터, 디버거 등이 있음

LINUX

  • 1991 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
  • Open Source System
    • 프로그래머가 원하는 기능을 추가할 수 있다
    • 다양한 플랫폼에 설치하여 사용 가능
    • 재배포가 가능
  • UNIX와 완벽하게 호환됨
  • 대부분의 특징이 UNIX와 동일

운영체제의 기본 명령어

운영체제 기본 명령어의 개요

  • 운영체제를 제어하는 방법은 크게 CLI와 GUI로 구분 가능
    • CLI(Command Line Interface) : 키보드로 명령을 직접 입력하여 작업을 수행
    • GUI(Graphic User Interface) : 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행

Windows 기본 명령어

  • CLI 기본 명령어 : 명령 프롬프트(Command)창에 명령어를 입력하여 작업을 수행하는 것
  
명령어기능
dir현재 디렉터리의 파일 목록을 표시
copy파일을 복사
del파일을 삭제
type파일의 내용 표시
ren파일의 이름 변경
md디렉터리를 생성
cd동일한 드라이브에서 디렉터리의 위치를 변경한다
cls화면의 내용을 지운다
attrib파일의 속성을 변경한다 / 속성 종류(r(읽기 전용), a(저장/백업), s(시스템 파일), h(숨김 파일)
find파일에서 문자열을 찾는다
chkdsk디스크 상태를 점검한다
format디스크 표면을 트랙과 섹터로 나누어 초기화한다
move파일을 이동한다

UNIX / LINUX 기본 명령어

  • CLI 기본 명령어 : 쉘에 명령어를 입력하여 작업을 수행하는 것
   
명령어기능 
cat파일 내용을 화면에 표시 
cd디렉터리 위치 변경 
chmod파일의 보호 모드를 설정하여 파일의 사용 허가를 지정;
chown파일 소유자와 그룹을 변경 
cp파일을 복사 
rm파일을 삭제 
find파일을 찾는다 
fsck파일 시스템을 검사하고 보수 
killPID(프로세스 고유 번호)를 이용하여 프로세스를 종료 
killall프로세스의 이름을 이용하여 프로세스를 종료 
ls현재 디렉터리의 파일 목록 표시 
mkdir디렉터리 생성 
rmdir디렉터리 삭제 
mv파일 이동 
ps현재 실행중인 프로세스 표시 
pwd현재 작업중인 디렉터리 경로를 화면에 표시 
top시스템의 프로세스와 메모리 사용 현황을 표시 
who현재 시스템에 접속해있는 사용자를 표시 
tar파일을 압축하거나 압축을 해제 
head파일 내용의 앞부분을 출력 
  • GUI 기본 명령어 : X Window라는 별도의 프로그램을 설치하여 GUI 방식으로 운영 가능

기억장치 관리

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

반입(Fetch) 전략

  • 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
  • 요구 반입(Demand Fetch) : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
  • 예상 반입(Anticipatory Fetch) : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법

배치(Placement) 전략

  • 새로 반입되는 프로그램이나 데이터를 주기억장치 어디에 위치시킬 것인지를 결정하는 전략
  • 최초 적합(First Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시키는 방법
  • 최적 적합(Best Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
  • 최악 적합(Worst Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법

교체(Replacement) 전략

  • 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
  • OPT(OPTimal replacement, 최적 교체) : 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
  • FIFO(First In First Out) : 선입선출
  • LRU(Least Recently Used) : 가장 오랫동안 참조되지 않은 페이지를 교체
  • LFU(Least Frequently Used) : 사용빈도가 가장 적은 페이지를 교체
  • NUR(Not Used Recently) : 최근에 사용하지 않은 페이지를 교체
  • MRU(Most Recently Used) : 사용 빈도가 가장 많은 페이지를 교체

프로세스 관리 및 스케쥴링

프로세스

프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 즉 실행중인 프로그램을 의미, Job 또는 Task라고도 한다

  • 프로세스의 다른 정의
    • 실기억장치에 저장된 프로그램
    • 프로세서가 할당되는 실체
    • 프로시저가 활동중인 것
    • 운영체제가 관리하는 실행 단위
    • 실행중인 프로그램
    • PCB를 가진 프로그램
    • 비동기적 행위(다수의 프로세스가 서로 규칙적이거나 연속적이지 않고 독립적으로 실행되는 것)를 일으키는 주체

프로세스 상태 전이

프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것

  • 프로세스의 상태
    • 제출(Submit) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
    • 접수(Hold) : 제출된 작업이 스풀 공간인 디스크의 할등 위치에 저장된 상태
      • spooling : 상대적으로 느린 입출력장치의 처리속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
    • 준비(Ready) : 프로세스가 CPU를 할당받기 위해 기다리고 있는 상태, 준비상태 큐에서 실행 준비
      • 준비상태 큐 : 여러 프로세스가 CPU를 할당받기 위해 기다리는 장소
    • 실행(Run) : 준비상태 큐에 있는 프로세스가 CPU를 할당받아 실행되는 상태
    • 대기(Wait), 보류, 블록(Block) : 프로세스에 입출력 처리가 필요하다면 현재 실행 중인 프로세스가 중단되고, 입출력 처리가 완료될 때까지 대기하고 있는 상태
    • 종료(Terminated, Exit) : 프로세서의 실행이 끝나고 프로세스 할당이 해제된 상태

스케쥴링(Scheduling)

프로세스가 실행되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

  • 스케쥴링을 수행하는 것 = 스케쥴러
  • 프로세스가 생성되어 완료될 때까지 프로세스는 여러 종류의 스케쥴링 과정을 거치게 된다
  • 프로세스 스케쥴링 기법
    • 비선점(Non-preemptive) 스케쥴링 : 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케쥴링 기법
      •   
        종류설명
        FCFS=FIFO준비상태 큐에 도착한 순서에 따라 CPU를 할당하는 기법
        SJF준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
        HRN실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로, 대기 시간과 서비스(실행) 시간을 이용하는 기법
        우선 순위준비상태 큐에서 기다리는 각 프로세스마다 우선 순위를 부여하여 그 중 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법
    • 선점(Preemptive) 스케쥴링 : 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케쥴링 기법
      •   
        종류설명
        SRT현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행시간을 비교하여 가장 짧은 시간을 요구하는 프로세스에게 CPU를 할당하는 기법
        라운드로빈(RR; Round Robin)규정 시간 또는 시간 조각(Slice)을 미리 정의하여 CPU 스케쥴러가 준비상태 큐에서 정의된 시간만큼 각 프로세스에 CPU를 제공하는 시분할 시스템에 적절한 스케쥴링 기법
        다단계 큐프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비상태 큐를 사용하는 기법
        다단계 피드백 큐특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는 다단계 큐 기법을 준비상태 큐 사이를 이동할 수 있도록 개선한 기법

© 2023 Jinsoo Lee. All rights reserved.

Powered by Hydejack v9.1.6