[정보처리기사] 실기 정리 - 11과목 (1)

peach·2020년 10월 9일
4

정보처리기사

목록 보기
28/34
post-thumbnail

🧀 운영체제


1. 개념

사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어


2. 종류

(1) Windows

  • GUI 제공
  • 선점형 멀티태스킹 방식 제공
  • 자동 감지 기능 제공
  • OLE 사용

(2) Unix

  • 대화식 운영체제 기능 제공
  • 다중 작업 기능 제공
  • 다중 사용자 기능 제공
  • 이식성 제공
  • 계층적 트리 구조 파일 시스템 제공
  • 리눅스
    오픈 소스 기반의 운영체제

  • Mac
    GUI 기반의 운영체제

  • Android
    휴대용 장치를 위한 운영체제
    미들웨어, 사용자 인터페이스, 표준 응용 프로그램을 포함한 운영체제
    • 자바와 코틀린 언어
    • 런타임 라이브러리
    • 안드로이드 소프트웨어 개발 키트



🧀 운영체제 기본 명령어


1. 제어 방법

  • CLI(Command Line Interface)
    사용자가 직접 명령어를 입력하여 제어하는 방식

  • GUI(Graphic User Interface)
    마우스로 화면을 클릭하여 그래픽 위주로 제어하는 방식

2. Windows 명령어

Help를 명령창에 입력해 검색 가능

  • ATTRIB : 파일 속성 변경
  • CALL : 한 프로그램에서 다른 프로그램을 호출
  • CD : 현재 디렉터리명을 보여주거나 디렉터리를 바꿈
  • CHKDSK : 디스크를 검사하고 상태 보고서를 표기
  • CLS : 화면을 지움
  • CMD : 명령 프롬프트 창을 열어줌
  • COMP : 파일을 비교
  • DISTPART : 디스크 파티션 속성을 표시하거나 구성
  • ECHO : 메시지를 표시하거나 ECHO 설정 변경
  • ERASE : 파일 삭제
  • EXIT : 명령 인터프리터 종료

3. Linux/Unix 명령어

최상위 유저는 #로 표시하고 일반 유저는 $로 표시함
--help, -h, -man을 명령어 뒤에 붙여 도움말 확인 가능

  • 시스템 관련
    • uname -a : 시스템의 모든 정보 확인
    • uname -r : 운영체제 배포 버전 확인
    • cat : 파일의 내용을 출력
    • uptime : 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인
  • 사용자
    • id : 사용자의 로그인명, id, 그룹 id 등을 출력
    • last : 시스템 부팅부터 현재까지 모든 사용자의 로그인과 로그아웃 정보를 출력
    • who : 현재 접속 사용자 정보 출력
  • 파일 처리
    • ls : 현재 디렉터리의 파일 및 폴더를 출력
    • pwd : 현재 작업 디렉터리의 절대 경로를 출력
    • rm : 파일을 삭제
    • cp : 파일을 복사
    • mv : 파일을 이동
    • rsync : 로컬 또는 원격에 파일과 디렉터리를 복사하고 동기화
  • 프로세스
    • ps : 현재 실행 중인 프로세스 목록을 출력
    • pmap : PID를 기준으로 메모리 맵 정보를 출력
    • kill : 특정 PID의 프로세스를 종료
  • 파일 권한
    • chmod : 파일이나 디렉터리의 권한 수정
    • chown : 파일이나 디렉터리의 소유자, 소유 그룹 수정
  • 네트워크
    • ifconfig : 네트워크 인터페이스 확인 및 설정
    • host : 도메인명을 알고 있는데 IP 주소를 모르거나 그 반대의 경우에 사용
  • 압축
    • tar : 여러 파일을 하나의 파일로 묶거나 풀 때 사용
    • gzip : 압축을 담당
  • 검색
    • grep : 입력으로 전달된 파일에서 특정 문자열을 찾을 때 사용
    • find : 특정 파일을 찾을 때 사용
  • 디스크 사용
    • df : 시스템에 마운트된 하드디스크의 남은 용량을 확인할 때 사용
    • du : 파일 사이즈를 KB 단위로 출력
  • 디렉터리 이동
    • cd : 디렉터리를 이동



🧀 운영체제 핵심 기능


1. 메모리 관리

(1) 개념

프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 기능

(2) 기법

  • 반입 기법(when)
    주기억장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법
    • 요구 반입 기법, 호출 반입 기법
  • 배치 기법(where)
    디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정하는 기법
    • 최초 적합(first-fit), 최적 적합(best-fit), 최악 적합(worst-fit)
  • 할당 기법(how)
    실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정하는 기법
    • 연속 할당 기법, 분산 할당 기법
  • 교체 기법(who)
    재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법
    • Swap In/Out, FIFO, LRU, LFU, MFU, Optimal, 시계 알고리즘

2. 프로세스 관리

(1) 개념

CPU와 데이터를 송수신하는 상황에서 프로세스에 대한 종합적인 관리 기법

(2) 프로세스 관리

  • 프로세스 상태

    • 생성(Create) 상태 : 사용자에 의해 프로세스가 생성된 상태

    • 준비(Ready) 상태 : CPU를 할당받을 수 있는 상태

    • 실행(Running) 상태 : CPU를 할당받아 동작 중인 상태

    • 대기(Waiting) 상태 : CPU를 양도하고 입출력 처리가 완료될 때까지 대기 리스트에서 기다리는 상태

    • 완료(Complete) 상태 : 주어진 시간 내에 완전히 수행을 종료한 상태

  • 프로세스 상태 전이

    • Dispatch : 준비 상태의 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당 (Ready → Running)

    • Timer run out : 실행 상태의 프로세스가 지정된 시간이 초과되어 스케줄러에 의해 PCB 저장 및 CPU 반납 후 다시 준비 상태로 전이 (Running → Ready)

    • Block : 실행 상태의 프로세스가 지정된 할당 시간을 초과하기 전에 입출력과 같은 사건이 발생하여 스스로 CPU를 반납하고 대기 상태로 전이 (Running → Waiting)

    • wake-up : 대기하던 사건이 종료되면 프로세스에게 종료 사실을 wait & signal 등을 통해 알려주고 준비 상태로 전이 (Waiting → Ready)

    • Swap-in : 프로세스에게 기억장치가 할당된 경우 (지연 상태 → 활동 상태)

    • Swap-out : 프로세스가 기억장치를 잃은 경우 (활동 상태 → 지연 상태)

(3) 프로세스 스케줄링

CPU를 사용하려는 프로세스들 사이의 우선순위를 관리하는 작업

① 주요 용어

  • 대기 시간 : 프로세스가 프로세서에 할당될 때까지 큐에 대기하는 시간
  • 평균 대기 시간 : 대기 큐의 프로세스들의 대기 시간의 평균
  • 서비스 시간 : 프로세스가 결과를 산출하기까지 소요되는 시간
  • 종료 시간 : 요구되는 Processing time을 모두 수행하고 종료된 시간
  • 응답 시간 : 프로세스가 입력되어 수행하고 결과를 산출하기까지 소요되는 시간
    응답 시간 = 종료 시간 - 도착 시간 = 대기 시간 + 서비스 시간
  • 평균 응답 시간 : 대기 큐의 프로세스들의 응답 시간의 평균
  • 응답률 : (대기 시간 + 서비스 시간) / 서비스 시간
  • 시간 할당량 : 한 프로세스가 프로세서를 동점하는 것을 방지하기 위한 단위 시간

② 유형

  • 선점형 스케줄링 : 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유 가능한 스케줄링

    • 장점 : 빠른 응답, 대화식 시분할 시스템에 적합
    • 단점 : 높은 우선순위 프로세스들이 들어오는 경우 오버헤드 초래
    • 활용 : 실시간 응답 환경, Deadline 응답 환경
  • 비선점형 스케줄링 : 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유 불가한 스케줄링

    • 장점 : 응답시간 예상에 용이, 모든 프로세스에 대한 요구를 공정하게 처리
    • 단점 : 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기해야 함
    • 활용 : 처리시간 편차가 적은 특정 프로세스 환경

③ 알고리즘

  • 선점형 스케줄링

    • Round Robin : 프로세스는 같은 크기의 CPU 시간을 할당받고, 시간 내에 완료하지 못하면 대기 큐의 맨 뒤로 보내짐

    • SRT : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고 남은 처리 시간이 더 짧은 프로세스가 대기 큐에 생기면 언제라도 선점됨

    • Multi Level Queue : 여러 개의 큐를 이용해 상위 단계 작업이 하위 단계 작업을 선점하고, 각 큐는 독자적인 스케줄링 기법을 사용

    • Multi Level Feedback Queue : 프로세스 특성에 따라 큐마다 다른 CPU 시간 할당량을 부여하고, 새로운 프로세스는 높은 우선순위에서 시작하여 점점 낮은 우선순위 큐로 이동하며, 마지막 단계는 라운드 로빈 방식을 적용함

  • 비선점형 스케줄링

    • FIFO : 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당함

    • Priority : 프로세스별 우선순위가 주어지고, 우선순위에 따라 CPU를 할당함, 동일 순위는 FIFO 사용

    • Deadline : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획

    • SJF : 대기 큐에서 가장 짧은 서비스 시간을 가지는 프로세스를 수행함
      → 기아 현상 발생 가능 : 시스템 부하가 많아 대기 큐의 낮은 우선순위를 갖는 프로세스가 무한정 기다리는 현상, Aging을 활용해 해결

    • HRN : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택
      → 기아 현상 최소화


3. 가상화

(1) 개념

물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술

(2) 종류

  • 플랫폼 가상화 : 호스트 프로그램이 게스트 프로그램을 만들어 독립된 환경을 만들어 낸 것처럼 보여주는 기법

  • 리소스 가상화 : 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법

(3) 기술요소

  • 컴퓨팅 가상화
    물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
    ex. 하이퍼바이저

  • 스토리지 가상화
    스토리지와 서버 사이에 SW/HW 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
    ex. 분산 파일 시스템

  • I/O 가상화
    서버의 I/O 자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술
    ex. 가상 네트워크 인터페이스 카드

  • 컨테이너
    컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술
    ex. 도커

  • 분산 처리
    여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산 문제나 대용량의 데이터를 처리하고 저장하는 기술

  • 네트워크 가상화
    물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치의 가상화를 통한 가상 네트워크를 지원하는 기술
    ex. SDN, NFV


4. 클라우드

(1) 개념

인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술

(2) 분류

  • 사설 클라우드 : 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용하여 내부에 구축되어 운영되는 클라우드, 직접 통제가 가능하며 보안성을 높일 수 있음

  • 공용 클라우드 : 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드, 확장성과 유연성이 뛰어남

  • 하이브리드 클라우드 : 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드, 사설 클라우드의 구축 비용 문제와 공용 클라우드의 보안성 문제를 해결

(3) 유형

  • 인프라형 서비스 (IaaS) : 시스템 자원을 클라우드로 제공하는 서비스

  • 플랫폼형 서비스 (PaaS) : 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스

  • 소프트웨어형 서비스 (SaaS) : 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스




🐭 참고문헌

  • NCS 정보처리기술사 연구회. (2020). 수제비 정보처리기사 실기 (2판). 건기원.

0개의 댓글