본문 바로가기

자격증/정보처리기사

[ XI ] 응용SW 기초 기술 활용 - 운영체제의 특징

728x90
반응형

[ 1 ] 운영체제 종류

( 1 ) 운영체제(OS; Operating System)

  • 운영체제의 개념
    • 운영체제는 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어이다.
  • 운영체제의 특징
    • 운영체제의 일반적 특징
      • 사용자 편리성 제공
      • 인터페이스 기능을 담당스케줄링 담당
      • 자언관리
      • 제어 기능
    • 운영체제의 커널의 기능
      • 운영체제는 크게 이너페이스(쉘) + 커널의 구조이다.
      • 쉘(Shell)
        • 쉘은 사용자가 입력시킨 명령어 라인을 읽어 필요한 시스템 기능을 실행시키는 명령어 해석기이다.
      • 커널(Kernel)
        • 커널은 운영체제의 핵심이 되는 기능들이 모여 있는 컴퓨터 프로그램이다.
      • 커널의 기능
        • 프로세스 관리
        • 기억장치 관리
        • 주변장치 관리
        • 파일 관리

( 2 ) 운영체제의 종류

  • 윈도우 운영체제
    • 윈도우즈는 MS-DOC의 멀티태스팅 기능과 GUI 환경을 제공하는 마이크로소프트 사가 개발한 운영체제이다
    • 윈도우즈 운영체제 특징
      • 그래픽 사용자 인터페이스 제공
      • 선점형 멀티태스팅 방식 제공
      • 자동감지 기능 제공
      • OLE 사용
  • 유닉스(Unix) 계열 운영체제
    • 데니스 리치와 켄 톰슨(Ken Thompsn) 등이 함께 벨 연구소를 통해 만든 운영체제이며 90% 이상이 C언어로 구현되어 있는 운영체제로 범용 다중 사용자 방식의 시분할 운영체제이다
    • 유닉스 계열 운영체제 특징
      • 대화식 누영체제 기능 제공
      • 다중 작업 기능 제공
      • 다중 사용자 기능 제공
      • 이식성 제공
      • 계층적 트리 구조파일 시스템제공
    • 리눅스(Linux) 운영체제
      • 유닉스를 기반으로 개발되고 소스코드가 공개된 오픈 소스 기반의 운영체제이다.
      • 리눅스는 데비안, 레드헷, Fedora, Ubuntu, CentOS와 같이 다양하게 출시되고 있다.
    • 맥(Mac) 운영체제
      • 애플이 유닉스를 기반으로 개발한 그래픽 사용자 인터페이스 기반의 운영체제이다
    • 안드로이드(Android) 운영체제
      • 휴대 전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트 등)을 포함하고 있는 운영체제이다.
      • 안드로이드 특징
        • 리눅스 기반
        • 자바와 코틀린 언어
        • 런타임 라이브러리
        • 안드로이드 소프트웨어 개발 키트

[ 2 ] 운영체제 기본 명령어 활용

( 1 ) 운영체제 제어

  • 운영체제를 제어하기 위한 방법은 CLI와 GUI가 있다.
  • CLI(Commad Line Interface)
    • 사용자가 직접 명령어를 입력
  • GUI(Graphic User Interface)
    • 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식

( 2 ) 윈도즈 운영체제의 기본 명령어

  • ATTRIB : 파일 속성을 표시하거나 바꿈
  • CALL : 한 일괄 프로그램에서 다른 일괄 프로그램을 호추
  • CD : 현재 디렉토리를 표시하거나 이동
  • CHKDSK : 디스크를 검사하고 상태 보고서 표시
  • CLS : 화면을 지움 ( CMD 화면의 로그들을 제거 )
  • CMD : Windows 명령 프롬프트 창을 새로 생성
  • COMP : 두개 이상의 파일을 비교
  • DISKPART : 디스크 파티션 속성을 표시하거나 구성
  • ECHO : 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않음
  • ERASE : 하나 이상의 파일을 지움
  • EXIT : CMD.EXE 프로그램을 마침 ( CMD 창 종료 )

( 3 ) 리눅스/유닉스 계열의 기본 명령어

  • 리눅스/유닉스 운영체제의 기본 명령어
    • 시스템 관련
      • uname -a : 시스템의 모든 정보를 확인하는 명령
      • uname -r : 운영체제의 배포버전을 출력하는 명령어
      • cat : 파일의 내용을 화면에 출력하는 명령어
      • uptime : 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인하는 명령
    • 사용자 
      • id : 사용자의 로그인명, id, 그룹 id 등을 출력하는 명령어
      • last : 시스템의 부팅부터 현재까지 모든 사용자의 로그인과 로긍웃에 대한 정보를 표시
      • who : 현재 접속 사용자의 정보를 표시
    • 파일 처리
      • ls : 자신이 속해 있는 폴더 내에서 파일 및 폴더를 표시
      • pwd : 현재 작업중인 디렉토리의 절대 경로 출력
      • rm : 파일 삭제
      • cp : 파일 복사
      • mv : 파일 이동
    • 프로세스
      • ps : 현재 실행되고 있는 프로세스 목록 출력
      • pmap : 프로세스 ID를 기준으로 메모리 맵 정보를 출력
      • kill : 특정 PID 프로세스를 종료
    • 파일 권한
      • chmod : 특정 파일 또는 디렉토리의 퍼미션 수정
      • chown : 파일이나 디렉토리의 소유자, 소유 그룹 수정
    • 네트워크
      • ifconfig : 네트워크 인터페이스를 설정하거나 화인
      • host : 도메인명은 알고 있는데 ip주소를 모르거나 혹은 그 반대의 경우 사용하는 명령
    • 압축
      • tar : 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용 ( 압축은 불가 )
      • 파일을 묶거나 풀 수는 없지만 압축을 담당하는 명령
    • 검색
      • grep : 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령
      • find : 특정 파일을 찾는 명령
    • 파일 이동
      • cp : 디렉토리를 복사할 때 사용하는 명령
      • rsync : 로컬 도는 원격에 파일과 디렉토리를 복사하고 동기화하는 명령어
    • 디스크 사용
      • df : 시스템에 마운트된 하드디스크의 남은 용량 확인
      • du : 파일 사이즈를 킬로 바이트 단위로 보여주는 명령
    • 디렉토리 이동
      • cd : 디렉토리를 이동하는 명령
  • 리눅스/유닉스 운영체제의 파일 접근 관리 권한
    • 리눅스/유닉스 파일 접근 제어 매커니즘
      • User : 파일을 소유하고 있는 사용자(Owner)
      • Group : 사용자를 제외하고 파일과 같은 그룹에 속해있는 모든 사용자 모임
      • Other : 그 밖의 사용자
    • 파일 접근 모드( 설정 명령어 : chmod )
      • User :
        • R : 4
        • W : 2
        • X : 1
      • Group:
        • R: 4
        • W : 2
        • X : 1
      • Other
        • R : 4
        • W : 2
        • X : 1
    • 접근 권한 변경
      • chmod [-R] permission file_name1 | drectory_name1 [file_name2 | directory_name2 .. ]
      • 예)
        • chmod o-w yoom.c
          • yoom.c에 대한 other의 쓰기 권한 제거
        • chmod 664 yoom.c
          • yoom.c에 대한 접근 권한은 ( rw-rw-r-- )
      • 접근 권한을 기호로 기술
        • 대상
          • u(User), g(Group), o(Other)
          • +(추가), -(제거), =(지정)
          • r(읽기),w(쓰기), x(실행)
        • 예 )
          • chmod go-w yoom.c
            • yoom.c에 대한 group과 other의 w 권한 제거
          • chmod a=w yoom.c
            • yoom.c에 대한 All(모든 사용자)에게 w 권한 설정
          • chmod g+w, o-x yoom.c
            • yoom.c에 대한 group에게 w 권한 추가, others에게 x 권한 제거

 


[ 3 ] 운영체제 핵심 기능 파악

( 1 ) 운영체제 핵심 기능

  • 메모리 관리( 반배할교 )
    • 메모리 관리 기법 종류 
      • 반입 기법
        • 주기억장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법
        • 적재 시기 결정(When)
      • 배치 기법
        • 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정하는 기법
        • 메모리 적재 위치 결정(Where)
      • 할당 기법
        • 실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정하는 기법
        • 메모리 적재 방법 결정(How)
      • 교체 기법
        • 재배치 기법으로 주기억 장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지를 결정하는 기법
        • 메모리 교채 대상 겨렁(Who)
    • 메모리 배치 기법(초적악)
      • 최초 적합(First-Fit)
        • 프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식
      • 최적 적합(Best-Fit)
        • 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식
        • 공백 최소화 장점이 있음
      • 최악 적합(Worst-Fit)
        • 프로세스의 가용 공간 중에서 가장 큰 공간에 할당하는 방식
    • 메모리 할당 기법
      • 연속 할당 기법
        • 실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속하여 저장하는 방법
          • 단일 분할 할당 기법 : 오버 레이스, 스와핑
          • 다중 분할 할당 기법 : 고정분할 할당 기법, 동적 분할 할당 기법
      • 분산 할당 기법
        • 하나의 프로세스를 여러 개의 조각으로 나누어 주기억장치 공간 내 분산하여 배치하는 기법 
          • 페이징 기법
          • 세그먼테이션 기법
          • 페이징/세그먼테이션 기법
    • 교체 기법
      • 교체 기법 개념
        • 교체 기법은 주기억 장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법
      • 교제 기법 유형
        • FIFO(First In First Out)
          • 가장 먼저 들어온 페이지를 교체
        • LRU(Least Recently Used)
          • 가장 오랫동안 사용되지 않은 페이지를 교체
        • LFU(Least Frequently Used)
          • 참조 횟수가 가장 적은 페이지를 교체
        • OPT(OPTimal Replacement)
          • 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
        • NUR(Not Used Recently)
          • LRU와 비슷한 알고리즘으로 최근 사용하지 않은 페이지를 교체
        • SCR(Second ChanceReplacement)
          • 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법으로 FIFO의 단점을 보완한 기법
  • 프로세스 관리(생준 실대완)
    • 프로세스(Process) 개념
      • 프로세스는 CPU의 의해 처리되는프로그램이다
    • 프로세스 상태
      • 하나의 프로세스는 여러 가지 이벤트에 의해 일련의 서로 구분되는 상태 변화를 겪는다
      • 생생(Create) 상태
        • 사용자에 의해 프로세스가 생성된 상태
      • 준비(Ready) 상태
        • CPU를 할당받을 수 있는 상태
      • 실행(Runnig) 상태
        • 프로세스가 CPU를 할당받아 동작 중인 상태
      • 대기(Waiting) 상태
        • 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료까지 대기 리스트에서 기다리는 상태 
        • 대기 리스트(Waiting List): 우선순위가 존재하지 않음
      • 완료(Complete) 상태
        • 프로세스 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태
      • 프로세스 상태 전이
        • 디스 패치
          • 프로세스는 준비 상태에서 실행 상태로 전이
        • 타이머 런 아웃
          • 타임 슬라이스 만료, 선점 시 타임 아웃 발생
        • 블록 = 입출력 발생
          • 프로세스는 실행 상태에서 대기 상태로 전이
        • 웨이크 업
          • 프로세스는 대기 상태에서 준비 상태로 전이
       

프로세스 상태 전이

  • 프로세스 스케줄링
    • 프로세스 스케줄링
      • 스케줄링은 CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업이다
    • 프로세스 스케줄링 주요 용어
      • 서비스 시간
        • 프로세스 결과를 산출하기까지 소요되는 시간
      • 응답시간(Response Time)
        • 프로세스들이 입력되어 서비스를 요청하고, 반응하기 시작할 때까지 소요되는 시간
      • 반환시간(Turnaround Time)
        • 프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간
        • 반환 시간 = 대기시간 + 수행시간
      • 대기시간
        • 프로세스가 프로세서에 할당되기까지 큐에 대기하는 시간
      • 평균 대기시간
        • 프로세스 대기 큐에서 대기하는 평균 시간
      • 종료시간
        • 요구되는 Processing Time을 모두 수행하고 종료된 시간
      • 시간 할당량(Time Quantum 또는 Time Slice)
        • 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 섭스되는 시간 할당량
      • 응답률
        • (대기시간 + 서비스 시간) / 서비스 시간 
        • HRN(Highest Responce ratio Next) 스케줄링에서 사용
        • HRN 스케줄에서 응답률이 높으면 우선순위가 높다고 판단
    • 프로세스 스케줄링 유형
      • 선점형 스케줄링(Preemptive Scheduling)
        • 하나의 프로세스가 CPU를 자치하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단 시키고 CPU를 점유하는 스케쥴링 방식
        • SMMR
          • SRT(Shortest Remaining Time)
          • MLQ(Multi-Level Queue)
          • MLFQ(MFQ)[Multi-Level Feedback Queue)
          • Round Robin
        • 실시간 응답 환경, Deadline 응답 환경
      • 비선점형 스케줄링(Non Preemptive Scheduling)
        • 한 프로세스가 CPU를 할당 받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU를 점유 불가능한 스케쥴링 방식
        • 우기 HFS
          • 우선 순위(Priority)
          • 기한부(Deadline)
          • HRN(High Response Ratio Next)
          • FCFS(
          • SJF(Shortest Job First)
        • 처리 시간 편차가 적은 특정 프로세스 환경
    • 프로세스 스케쥴링 알고리즘
      • 선점형 스케줄링 알고리즘
        • RR; Round Robin
          • 프로세는 같은크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고 ,CPU는 대기 중인 다음 프로세스로 넘어가는 스케줄링 기법
        • SRT;Shortest Remaning Time
          • 가장 짧은 시간이 소요되는 프로세스를 먼저 수행
        • 다단계 큐(MLQ)
          • 작업들을 여러 종류 그룹으로 분할 여러 개의 큐를 이용하여 상위 단계 작업에 의한 하위단계 작업이 선점 당하는 스케줄링 방식
        • 다단계 피드백 큐(MLFQ)
          • FCFS(FIFO)와 라운드 로빈 스케쥴링 기법을 혼합한 것으로, 새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용하는 스케줄링 기법
      • 비선점형 스케줄링 알고리즘의 유형
        • 우선순위(Priority)
          • 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당하는 스케줄링 기법
          • 동일 순위는 FCFS
        • 기한부(Deadline)
          • 작업들이 명시도니 시간이나 기한 내에 완료되도록 게획하는 스케줄링 기법
        • FCFS(First Come First Service)
          • 프로세스가 대기 큐에 ㄷ착한 순서에 따라 cpu를 할당 하는 스케줄링 기법
          • FIFO 알고리즘이라고도 함
        • SJF(Shortest Job First)
          • 플세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 스케줄링 기법
        • HRN(Hight Response Ratio Next)
          • 대기 중인 프로세스 중 현재 응답률(Response Ratio)이 가장 높은 것을 선택하는 스케ㅜㄹ링 기법
          • SJF의 약점인 기아 현상을 보완한 기법으로 긴 작업과 짧은 작업간의 불평등 완화
          • HRN의 우선순위 = (대기시간 + 서비스 시간) / 서비스 시간
      • 프로세스 관리-교착상태
        • 교착상태(Deadlock) 개념
          • 교착상태는 다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태이다.
        • 교착상태 발생 조건
          • 상호 배제
            • 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
          • 점유와 대기
            • 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
          • 비선점
            • 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고 오직 점유한 프로세스만이 해제 가능한 상태
          • 환형 대기
            • 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태
        • 교착 상태 해결 방법
          • 예방
            • 상호 배제를 제외한 나머지 교착상태 발생 조건을 위배 하는 방안
            • 점유 자원 해제 후 새 자원 요청
          • 회피
            • 안전한 상태를 유지할 수 있는 요구만 수락
            • 은행가 알고리즘, Wound-Wait, Wait-Die
          • 발견
            • 시스템의 상태를 감시 알고리즘을 통해 교착 상태 검사
            • 자원할당 그래프, Wait for Graph
          • 복구
            • 교착상태가 없어질때까지 프로세스를 순차적으로 Kll하여 제거, 희생자를 선택해야 하고 기아 상태 발생
            • 프로세스 Kill, 자원선점

( 2 ) 가상화, 클라우드

  • 가상화(Virtualization) 개념
    • 가상화는 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러개로 보이게 하는 기술이다.
    • 가상화 종류
      • 플랫폼 가상화
        • 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만드어 낸 것 처럼 보여주는 기법
      • 리소스 가상화
        • 게스트 소프트웨어 윙서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것  처럼 화룡ㅇ하는 기법
      • 컴퓨팅 가상화
        • 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활요할 수 있도록 하는 기술
        • 예 ) 하이퍼바이저
      • 스토리지 가상화
        • 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
        • 예 ) 분산 파일 시스템
      • I/O 가상화
        • 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층으로, 서버의 I/O 자원을 물리적으로 분리하고 케으블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술
        • 예 ) 가상 네트워크 인터페이스 카드
      • 컨테이너
        • 컨테이너화된 애플리케이션들이 단일 운영체제상 에서 실행되도록 해주는 기술
        • 예 ) 도커(Docker)
      • 분산처리 기술
        • 여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술
      • 네트워크 가상화
        • 물리적으로 떨어져 있는 다야한 장비들을 연결하기 위한 수단으로 중계장치(라우터, 스위치 등)의 가상화를 통한 가상 네트워크를 지원하는 기술
        • 예 ) SDN, NFV
  • 클라우드 컴퓨팅
    • 클라우드 컴퓨팅 분류
      • 사설 클라우드
        • 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용하여 내부에 구축되어 운영하는 클라우드
      • 공용 클라우드
        • 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
      • 하이브리드 클라우드
        • 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드
  • 클라우드 컴퓨팅 유형
    • 인프라형 서비스(IaaS; infrastructure as a Service)
      • 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
    • 플랫폼형 서비스(PaaS;Platform as a Service )
      • 인프라를 생성, 관리 하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
    • 소프트웨어형 서비스(SaaS; Software as a Service)
      • 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
      • 주문형 소프트웨어라고도 함
728x90
반응형