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

    2020. 5. 7. 13:21

    by. 위지원

    이전글

    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)