2020년/정처기

[2020 정보처리기사 실기] Section 10. 응용 SW 기초 기술 활용(1/4)

위지원 2020. 5. 7. 13:21

이전글

2020/05/05 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기]Section 09.소프트웨어 개발 보안 구축 #4

 

운영체제(OS, Operating System)의 개념

 

운영체제란?

컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러프로그램 모임, 사용자와 하드웨어간 인터페이스로 동작하는 system sw.

 

사용자

응용 프로그램

유틸리티

운영체제 

하드웨어

 

 

운영체제의 목적

처리 능력 일정 시간 내에 시스템이 처리하는 일의 양
반환 시간 작업을 의뢰한 시간부터 완료까지 걸린 시간
사용 가능도 필요시 즉시 사용 가능한 정도
신뢰도 문제를 정확하게 해결하는 정도

 

 

운영체제의 기능

  • 프로세서, 기억장치, 입출력장치, 파일/정보 등의 자원 관리
  • 자원의 스케쥴링
  • 사용자와 시스템간의 인터페이스 제공
  • 하드웨어와 네트워크 관리/제어
  • 데이터 관리, 데이터/자원 공유
  • 시스템 오류 검사/복구
  • 입/출력에 대한 보조 기능 제공
  • 가상 컴퓨팅 기능 제공

 

 

운영체제의 주요 자원 관리

프로세스 관리 - 프로세스 스케쥴링/동기화 관리
- 프로세스 생성/제거/시작/정지/메시지 전달 등 기능 담당
기억장치 관리 프로세스에게 메모리 할당 및 회수관리
주변장치 관리 입/출력장치 스케줄링/전반적인 관리 
파일 관리 파일의 생성/삭제/변경/유지등 관리

 

 

운영체제의 종류

단일 작업 처리 시스템 MS-DOS
다중 작업 처리 시스템 Windows, UNIX, LINUX, MacOS
개인용 Windows, MacOS, MS-DOS
서버용  UNIX, LINUX

 

 

Windows의 개요 및 특징

90년대 마이크로소프트사가 개발

  • GUI
  • 선점형 멀티태스킹 : 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행중 문제가 발생하면 해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환함
  • PNP(Plug and Play, 자동 감지 기능) : 하드웨어가 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 기능
  • OLE(Object Linking and Embedding) : 다른 응용프로그램에서 작성된 Object를 현재 작성중인 문서에 Linking하거나 embedding하여 편집할 수 있는 기능
  • 255자의 긴 파일명 : \ / ? " <> | 를 제외하고 문자 및 공백합쳐서 255
  • Single-User 시스템

 

UNIX의 개요 및 특징

60년대 벨 연구소, MIT, General Electric이 공동 개발

  • 시분할 시스템을 위해 설계된 대화식 운영체제로, Open System임
  • 대부분 C언어로 작성되어있어 이식성이 높으며 장치/프로세스간의 호환성이 높음
  • 크기가 작고 이해가 쉬움
  • 다중 사용자, 다중 작업 지원
  • 통신망 관리용 운영체제로 적합
  • Tree 구조의 파일 시스템
  • 전문적 프로그램 개발에 용이
  • 다양한 유틸리티 프로그램 존재

 

UNIX의 시스템 구성

커널

  • 핵심적인 부분으로 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행
  • 하드웨어 보호, 프로그램/하드웨어 간의 인터페이스 역할 담당
  • cpu 스케줄링, 기억장치 관리, 파일관리, 입출력관리, 프로스세간 통신, 데이터 전송 및 변환등

 

  • 명령어를 인식하고 프로그램 호출 및 명령을 수행
  • 시스템/사용자간 인터페이스 역할 담당
  • 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체 처리가 가능
  • 파이프라인 기능을 지원하고 입/출력 재지정을 통해 출려과 입력의 방향 변경 가능
  • 공용 SHELL(Bourne Shell, C shell, Korn Shell)이나 커스텀SHELL사용 가능

 

유틸리티 프로그램

  • DOS에서의 외부 명령어에 해당
  • 일반 사용자가 작성한 응용프로그램 처리
  • 에디터, 컴파일러, 인터프리터, 디버거등

 

LINUX의 개요 및 특징

91년 리누스 토발즈가 UNIX 기반으로 제작

  • Open Source Code, 다양한 플랫폼에 설치 사용 가능, 재배포 가능
  • UNIX와 완벽 호환
  • 특징이 대부분 UNIX와 동일

 

MacOS의 개요 및 특징

80년대 애플사가 UNIX기반으로 제작

  • 애플사 생산 제품에만 사용가능
  • 드라이버 install, uninstall 단순

 

 

운영체제의 기본 명령어

Windows 기본 명령어 // cmd에 한번 직접해보세요~ 아주재미지다

CLI 기본 명령어

  • DIR : 파일 목록
    • dir/p : 목록을 한 화면 단위로 표시
    • dir/w : 목록을 가로로 나열하여 표시
    • dir/o : 지정한 정렬 방식으로 파일 목록 표시(D:날짜/시간, E:확장자, N:파일 이름, S:파일 크기)
    • dir/s : 하위 파일정보까지 표시
    • dir/a : 지정한 속성이 설정된 파일 목록 표시
  • COPY : 파일 복사 copy abc.txt wee ;wee 디렉터리로 abc.txt 파일 복사
  • DEL : 파일 삭제
  • TYPE : 파일 내용 표시
  • REN : 파일 이름 변경 ren abc.txt zxc.txt
  • MD : 디렉터리 생성 
  • CD : 무브무브!
  • CLS : 클리닝
  • ATTRIB : 파일 속성 변경 attrib +r abc.txt ;abc.txt의 파일을 읽기전용으로 변경
    • r 읽기전용
    • a 저장/백업 
    • s 시스템 파일
    • h 숨김파일
  • FIND : 파일에서 문자열 검색 find "123" abc.txt 
  • CHKDSK : 디스크 상대 점검
  • FORMAT : 디스크 표면을 트랙과 섹터로 나누어 초기화 format c:
  • MOVE : 파일 이동 move abc.txt wee

디스크 구성

 

 

UNIX/LINUX 기본 명령어

X Windows라는 프로그램을 설치해서 GUI 방식으로 운영가능

  • cat : 파일 내용 화면에 표시
  • cd : 이동
  • chmod : 파일 권한 변경 chmod u=rwx abc.txt ; u에게 abc.txt read write execute 권한 부여
    • u : 소유자
    • o : 다른 사용자
    • a : 모두
    • g : 그룹
    • + 권한 추가, - 권한 제거, = 권한 부여
  • chown : 파일 소유자/그룹 변경 chown member1 abc.txt ; abc.txt파일의 소유자를 membere1로 변경
  • cp : 파일 복사
  • rm : 파일 삭제
  • find 파일 찾기
  • fsck : 파일 시스템을 검사하고 보수 fsck /dev/sda1
  • kill : ID를 이용하여 프로세스 종료
  • killall : 프로세스의 이름으로 프로세스 종료
  • ls : 파일 목록 표시
  • rmdir : 디렉터리 삭제
  • mkdir : 디렉터리 생성
  • mv : 파일 이동
  • ps : 현재 실행중인 프로세스 표시
  • pwd : 현재 작업중인 디렉터리 경로 화면에 표시
  • top : 시스템의 프로세스와 메모리 사용 현황 표시
  • who : 현재 시스템에 접속해 있는 사용자 표시

 

 

기억장치 관리

기억장치의 관리 전략은 보조기억장치의 프로그램/데이터주기억장치에 적재시키는 시기(반입,Fetch), 적재위치(배치, Placement)등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한것

 

 

반입(Fetch) 전략

  • 요구 반입(Demand) : 실행중인 프로그램이 특정 프로그램/데이터등의 참조를 요구할 때 적재
  • 예상 반입(Anticipatory) : 미리 예상해서 적재

 

 

배치(Placement) 전략 ( 최적,최악은 단편화의 크기로 하면 되겠죵? )

  • 최초 적합
  • 최적 적합
  • 최악 적합

 

교체(Replacement) 전략: 중요한건 FIFO, LRU, LFU

  • FIFO(First In First Out)
  • OPT(Optimal replacement) : 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체, 구현 불가(미래지향적이므로, 벨라디 변이) 
  • LRU(Least Recently Used)
  • LFU(Least Frequently Used)
  • NUR(Not Used Recently) 
  • SCR(Second Chance Replacement) : 가장 오랫동안 주기억장치에 있던 페이지중 자주 사용되는 페이지의 교체를 방지는것, 각 페이지마다 참조비트를 두어 FIFO로 페이지 교체하다가 비트가 0일땐 교체 1일땐 0으로 변경후 FIFO 리스트의 맨 마지막으로 피드백시켜 다음 순서를 기다리게 함(출처 : https://jhpop.tistory.com/34 ) 
 

페이지 교체 알고리즘

페이지 폴트가 발생했을때 교체 방법 // OPT, FIFO, LRU, LFU, NUR, SCR 등 OPT - 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법 - 각 페이지의 호출 순서와 참조 상황을 미리 예측해야 하므로 실현..

jhpop.tistory.com

 

 

LINUX 메모리 관리 방법

*windows는 작업 관리자로 응용프로그램이나 프로세스 종료로하면 됨

  • meminfo 명령어를 이용 
    • /# cat /proc/meminfo
  • 메모리 부족한 경우 Swapping 기법이나 min_free_kbytes 명령어 사용
    • 스와핑 : 메모리 일부를 보조기억장치에 저장하는 기법
      • /# dd if=dev/zero of=swapfile bs=1M count1024 : dd를 이용하여 1Gbyte Swap file 생성
        • dd는 블록 단위로 파일을 변환하거나 복사할때 사용하는 명령어로 " dd if=/dev/zerop of=[파일명] bs[용량] count=[반복 횟수]"
      • /# fallocate --length 1G /swapfile : fallocate를 이용하여 1Gbyte Swap file 생성
    • min_free_kbytes 커널 파라미터 : 최소한의 가용 메모리 크기를 KByte 단위로 설정
      • /# /proc/sys/vm/min_free_kbytes=20480 : 가용 메모리 크기를 20,480KByte으로 설정

 

 

프로세스 관리

프로세스란?

프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미하며 Job, Task라고도 하며 다음과 같이 여러 형태로 정의가 가능

  • PCB를 가진 프로그램
  • 실기억장치에 저장된 프로그램
  • 프로세서가 할당되는 실체로서 디스패치가 가능한 단위
  • 프로시저(프로그램이 작은 단위로 나뉜 것)가 활동중인 것
  • 비동기적 행위를 일으키는 주체
  • 지정된 결과를 얻기 위한 일련의 계통적 동작
  • 목적 또는 결과에 따라 발생되는 사건들의 과정
  • 운영체제가 관리하는 실행단위

 

프로세스 상태 전이

*spooling : 입출력장치의 공유 및 상대적으로 느린 입/출력장치의 처리속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정

*dispatch : 프로세서를 할당받아 실행 상태로 전이되는 과정

*Hold : 제출된 작업이 디스크의 할당 위치에 저장된 상태

*ready : 프로세스는 준비상태 큐에서 실행을 준비

*block : 입출력이 완료될때까지 대기

 

 

LINUX 프로세스 관리방법

*windows는 작업 관리자로 우선순위를 설정할 수 있음

  • proc 디렉토리에서 확인할 수있음 
    • prock directory : 보조기억장치에 실제 존재하는 파일이 아닌 RAM에 저장되어 있는 데이터를 확인할 수 있는 가상의 디렉토리

 

다음글 : 2020/05/07 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기] Section 10. 응용 SW 기초 기술 활용(2/4)