방구석 상상코딩

29. 운영체제의 특징 본문

정보처리기사 실기

29. 운영체제의 특징

구석탱 2022. 2. 8. 21:28

운영체제 (OS : Operation System)

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

 

1. 윈도즈(Windows) 운영체제

  • 윈도즈 운영체제 특징
    - 그래픽 사용자 인터페이스(GUI) 제공 : 키보드 없이 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행하는 그래픽 기반의 인터페이스 방식
    - 선점형 멀티태스킹 방식 제공 : 동시에 여러 개의 프로그램을 실행하면서 운영체제가 각 작업의 CPU 이용시간을 제어
    - 자동감지 기능 제공 : 하드웨어를 설치했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 자동감지 기능 제공
    - OLE(Object Linking and Embedding) 사용 : 개체를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입하여 편집할 수 있게 하는 기능 제공
  • 윈도즈 운영체제의 기본 명령어
    명령어 설명
    ATTRIB 파일 속성을 표시하거나 바꿈
    CALL 한 일괄 프로그램에서 다른 일괄 프로그램을 호출
    CD 현재 디렉터리 이름을 보여주거나 바꿈
    CHKDSK 디스크를 검사하고 상태 보고서를 표시
    CLS 화면을 지움
    CMD Windows 명령 프롬프트 창을 열어줌
    COMP 두 개 이상의 파일을 비교
    DISKPART 디스크 파티션 속성을 표시하거나 구성
    ECHO 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않음
    ERASE 하나 이상의 파일을 지움
    EXIT CMD.EXE 프로그램(명령 인터프리터)을 마침

2. 유닉스(Unix) 계열 운영체제

교육 및 연구 기관에서 사용되는 범용 다중 사용자 방식의 시분할 운영체제

  • 유닉스 계열 운영체제 특징
    - 대화식 운영체제 기능 제공 : 프롬프트가 나타난 상태에서 사용자가 명령을 입력하면 시스템은 그 명령을 수행하는 사용자 명령 기반의 대화식 운영체제 기능을 제공
    - 다중 작업 기능 제공 : 다수의 작업(프로세스)이 중앙처리장치(CPU)와 같은 공용자원을 나누어 사용하여 한 번에 하나 이상의 작업을 수행하는 기능 제공
    - 다중 사용자 기능 제공 : 여러 대의 단말이 하나의 컴퓨터에 연결되어서, 여러 사람이 동시에 시스템을 사용하여 각각의 작업을 수행할 수 있는 기능 제공
    - 이식성 제공 : 90% 이상 C언어로 구현되어 있고, 시스템 프로그램이 모듈화 되어 있어서 다른 하드웨어 기종으로 쉽게 이식 가능
    - 계층적 트리 구조 파일 시스템 제공 : 유닉스는 계층적 트리 구조를 가짐으로써 통합적인 파일 관리가 용이
  • 유닉스 계열 운영체제 종류
    - 리눅스(Linux) 운영체제 : 유닉스를 기반으로 개발되고, 소스 코드가 공개된 오픈 소스 기반의 운영체제
    - 맥(Mac) 운영체제 : 애플이 유닉스를 기반으로 개발한 그래픽 사용자 인터페이스 기반의 운영체제
    - 안드로이드(Andriod) 운영체제 : 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이베일 클라이언트 등)을 포함하고 있는 운영체제
  • 리눅스/유닉스 운영체제 기본 명령어
    - 파일 처리
    명령어 설명
    ls - 자신이 속해 있는 폴더 내에서의 파일 및 폴더들을 표시하는 명령어
    pwd - 현재 작업 중인 디렉토리의 절대 경로를 출력하는 명령어
    rm - 파일 삭제 명령어
    cp - 파일 복사 명령어
    mv - 파일 이동 명령어
     - 파일 권한
    명령어 설명
    chmod - 특정 파일 또는 디렉토리의 퍼미션 수정 명령어
    chown - 파일이나 디렉토리의 소유자, 소유 그룹 수정 명령어

3. 운영체제 핵심 기능

  • 메모리 관리 : 프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 기능
  • 프로세스 관리 : CPU와 데이터를 송수신하는 상황에서 현재 메모리 사용 부분, 메모리 입출력 순서, 메모리 공간 확보 등을 수행하며 프로세서 관리 기법에는 일시중지 및 재실행, 동기화, 통신, 교착상태 처리, 프로세스 생성 삭제가 있음

4. 운영체제 제어

  • CLI (Command Line Interface) : 사용자가 직접 명령어를 입력, 컴퓨터에 명령을 내리는 방식
  • GUI (Graphic User Interface ) : 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식

프로세스 스케쥴링

1. 선점형 스케쥴링 (Preemprive Scheduling)

하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케쥴링 방식

  • 라운드 로빈 (Round Robin) : 프로세스는 같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어감
  • SRT (Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨
  • 다단계 큐 (Multi Level Queue) : 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위 단계 작업이 선점당함, 각 큐는 자신만의 독자적인 스케쥴링을 가짐
  • 다단계 피드백 큐 (Multi Level Feedback Queue) : 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU 시간 할당량을 부여, FCFS(FIFO)와 라운드 로빈 스케쥴링 기법을 혼합한 것으로, 새로운 프로세서는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용

2. 비선점형 스케쥴링 (Non Preemprive Scheduling)

한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케쥴링 방식

  • 우선순위 (Priority) : 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당
  • 기한부 (Deadline) : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획
  • FCFS (First Come First Service) : 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당 (FIFO 알고리즘)
  • SJF (Shortest Job First) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유
  • HRN (Highest Response Ratio Next) : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택
    HRN의 우선순위 = (대기시간 + 서비스 시간) / 서비스 시간

* 기아 현상 : 시스템 부하가 많아서 준비 큐에 있는 낮은 등급의 프로세스가 무한정 기다리는 현상
* 에이징 기법 : 기아 현상을 해결하기 위해서 오랫동안 기다린 프로세스에게 우선순위를 높여주도록 처리하는 기법

가상화

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

※ 가상화 기술요소

  • 컴퓨팅 가상화 : 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
  • 스토리지 가상화 : 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술로 이기종 스토리지 시스템의 통합을 가능하게 하는 기술
  • I/O 가상화 : 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층으로, 서버의 I/O 자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술
  • 컨테이너 : 컨테이너화 된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술
  • 분산처리 기술 (Distributed Computing) : 여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술
  • 네트워크 가상화 기술 : 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치(라우터, 스위치 등)의 가상화를 통한 가상 네트워크를 지원하는 기술

클라우드 컴퓨팅 (Cloud Computing)

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

 

1. 클라우드 컴퓨팅 분류

분류 주요 내용
사설 클라우드
(Private Cloud)
- 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원(IDC, 서버 등)을 사용하여 내부에 구축되어 운영되는 클라우드
- 자체 컴퓨팅 자원으로 모든 하드웨어, 소프트웨어, 데이터를 수용
- 직접적인 통제가 가능하며 보안성을 높일 수 있음
공용 클라우드
(Public Cloud)
-  클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
- 일정한 비용을 지불하고 하드웨어, 소프트웨어 등을 사용
- 확장성, 유연성 등이 뛰어남
하이브리드 클라우드
(Hybrid Cloud)
- 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드
- 사설 클라우드의 약점인 구축 비용 문제와 공용 클라우드의 약점인 보안성 확보 문제를 해결
- 사용 업무의 중요도, 보안성 확보의 중요도 등에 따라 이용 형태 변경 가능

2. 클라우드 서비스 유형

유형 설명
인프라형 서비스
(IaaS)
- 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
- 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행
- 하위의 클라우드 인프라를 제어하거나 관리하지 않지만 스토리지, 애플리케이션에 대해서는 제어권을 가짐
플랫폼형 서비스
(PaaS)
- 인프라를 생성, 관리 하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
- SaaS의 개념을 개발 플랫폼에도 확장한 방식으로 개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발 요소를 웹에서 빌려 쓸 수 있게 하는 모델
- OS, 애플리케이션과 애플리케이션 호스팅 환경 구성의 제어권을 가짐
소프트웨어형 서비스
(SaaS)
- 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
- 주문형 소프트웨어라고도 함