[OS] 1. 운영체제와 컴퓨터

Park H·2020년 12월 26일
0

OS

목록 보기
1/9
post-thumbnail

운영체제

  • Operating System
    : 일반 컴퓨터나 노트북의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어
    (컴퓨터 HW 바로 윗단에 설치되는 SW)

  • 정의
    : 사용자에게 편리한 인터페이스를 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어

  • Cpu의 성능이 낮고, 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 (임베디드 시스템 혹은, 임베디드 운영체제)라고 한다.

1. 운영체제의 필요성

⇒ 크게 프로그램의 성능 향상, 자원관리

[질문]

1) 컴퓨터는 운영체제가 없어도 작동할까? (YES)
* 프로그램이 가능하면 컴퓨터라고 한다 (ex - 애니악)

2) OS가 있는 기계와 없는 기계와의 차이는?
* OS 없는 기계
1. 만들 당시 구현한 기능만을 수행
2. 다른 기능의 추가, 성능 향상을 할 수 없다.
3. 정해진 계산만이 가능한 기계

3) 운영체제는 성능을 향상하는 데에만 필요한가? (NO - 자원관리)
* 운영체제는 성능향상뿐만 아니라 "자원관리"도 한다.

4) 운영체제는 자원을 어떻게 관리하는가
* OS는 사용자가 직접 자원에 접근하는것을 막는다.
⇒ 자원보호, 관리

2. 운영체제의 역할

⇒ 4가지, (자원 관리, 보호, 하드웨어 인터페이스 제공, 사용자 인터페이스 제공)

1) 자원 관리

  • OS는 자원을 요청한 프로그램이 여러개라면 적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회수한다.

2) 자원 보호

  • 비정상적인 작업으로부터 컴퓨터 자원을 보호
    (사용자가 기존의 데이터를 직접 삭제, 혹은 침범)

3) 하드웨어 인터페이스 제공 (드라이버)

  • 하드웨어 인터페이스가 자동으로 설치되게 함으로써(드라이버)
    하드웨어의 종류에 상관없이 사용할 수 있도록 함(프로그램이)

4) 사용자 인터페이스 제공 (CLI, GUI)

  • 사용자 인터페이스는 사용자가 운영체제를 편리하게 사용하도록 지원하기 위한 것

3. 운영체제의 분류

<3가지로 분류>

  1. 동시 작업 지원

  2. 다중 사용자의 동시 지원 여부

  3. 작업을 처리하는 방식


[ 운영체체의 역사순 나열 ]

1) 일괄처리 시스템 (작업 처리)

  • 작업을 모아 한번에 하나씩만을 처리하는 것
  • 프로그램 실행 중 데이터 입력 및 수정이 불가능하다.

2) 대화형 시스템 (동시 작업)

  • 작업 중간에 사용자가 입력을 하거나 사용자에게 중간 결과물을 보여줄 수 있는 시스템
  • 수정도 가능 (키보드와 모니터의 등장)

⇒ 작업시간의 예측이 어려움

3) 실시간 시스템(작업 처리)

  • 실시간 OS는 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 시스템

  • ex) 원자력, 미사일 제어

  1. 경성 실시간 시스템 (Hard Realtime System)
    :주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 시스템

    ex) 로켓, 원자로 제어 시스템 등
  2. 연성 실시간 시스템 (Soft Realtime System)
    : 멀티미디어 스트리밍 시스템과 같이 데이터가 시간을 맞추어 전달되어야 올바른 기능을 수행할 수 있는 시스템

    ex) 동영상 재생이 끊기거나 정확히 전달되지 않을 경우
  • 경성 실시간 시스템처럼 위험한 결과를 초래하지는 않는다.

4) 시분할 시스템(작업 처리)

  • 하나의 CPU로 여러 작업을 동시에 실행하는 다중 프로그램
  • cpu 사용시간ㅇ르 잘게 쪼개어(Time Slice) 여러작업에 나누어준다.

5) 다중 사용자 시스템(동시 지원)

  • 한 사람이 여러프로그램을 동시에 실행할 수 있으면(시분할)
    하나의 컴퓨터에서 여러사람이 동시에 작업할 수 있다.

  • 즉, 다중 사용자 시스템이란 1대의 컴퓨터로 여러사람이 동시에 작업하는 것

    6) 분산 시스템

  • 값이싸고 크기가 작은 여러 컴퓨터들을 하나로 묶어 대형 컴퓨터에 버금가게 하는 것 (개인용 컴퓨터의 보금으로 인해 가능해짐)

  • 네트워크 상에 분산되어 있는 여러 컴퓨터로 작업을 처리하고 그 결과를 상호 교환하도록 구성한 시스템

    7) 클라이언트/ 서버 시스템

  • 분산 시스템은 모든 컴퓨터가 동등한 위치에 있기 때문에, 결과를 처리하는 컴퓨터에 문제 발생시 결과 모으기가 힘듬( 구심점이 없기 때문에)

  • 클라언트(요청) / 서버(응답) -> 2중 구조로 단점 커버

    	ex) 웹 서버 시스템
    • 데몬(demon) - 백그라운드에서 작업을 처리해주는 서비스
      : 클라언트/ 서버 시스템에서는 서버가 멈추지 않고 계속 작동하여 요청을 처리해야한다.
      이러한 시스템을 데몬이라고 함

      ex) 아파치 톰캣

8) P2P 시스템

  • 서버의 부하를 줄이기 위한 시스템

  • 서버가 파일 검색만을 맡고 사용자와 사용자간에 연결

  • 서버의 부하가 현저히 줄어든다.

  • 음악, 동영상등 서버에 올리는 파일의 크기가 점점 커짐으로써 서버가 가지는 부담을 해소하기 위한 시스템

    	ex) 소리바다, 메신저, 파일공유(토렌트) 

4. 운영체제의 구조

1) 커널

프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것

=> 운영체제는 크게 두 부분으로 나뉜다( 인터페이스, 커널)

  • 인터페이스 : 사용자와 응요프로그램에 인접하여 커널에 명령어를 전달하고 실행결과를 돌려준다.

  • 커널 : 운영체제의 핵심기능을 모아놓은 공간

2) 시스템 호출(커널)

  • 커널이 자신을 보호하기 위한 인터페이스이다.
  • 커널은 사용자나 응용프로그램으로부터 컴퓨터 자원에 직접 접근하는 것을 막는다.
  • 시스템호출이라는 인터페이스를 이용하여 접근 하여야 한다.
    ex) 함수 호출

(즉, 응용프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이요하려 할 때는 시스템 호출을 이용하여야 한다.)

3) 드라이버

  • 커널과, 하드웨어 사이의 인터페이스

  • 하드웨어 특헝을 반영한 소프트웨어를 하드웨어 제작에게 받아 커널이 실행될 때 함께 실행되도록 하는 것이다.

  • 하드웨어는 커널에서 "직접" 연결되기도 하고, "드라이버"를 통해 연결되기도 한다.

5) 커널의 구성

1) 커널이 하는 일

  1. 프로세스 관리 : 프로세스에 cpu 배분
  2. 메모리 관리 : 프로세스에 작업공간 배치
  3. 파일 시스템 관리 : 데이터 자장, 접근가능한 인터페이스 제공
  4. 입출력 관리 : 입력과 출력 서비스 제공
  5. 프로세스간 통신관리 : 공동 작업을 위한 각 프로세스간 통신 환경을 지원

2) 커널의 분류

  • 커널이 기능을 어떻게 구현하는가 에 따라 분류 됨
  1. 단일형 구조 커널
    : 초기 모델, 커널의 핵심기능을 구현하는 모듈들이 구분없이 하나로 구성
    ex) Main() 안에 전부 때려박은 형태
  • 장점
    : 모듈이 거의 분리되어 있지 않아 통신비용 적음

  • 단점
    가. 버그나 오류처리 히듬
    나. 상호 의존성이 높음


  1. 계층형 구조 커널
    : 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층간의 통신을 통해 운영체제를 구현하는 방식

  1. 마이크로 구조 커널
  • 계층형 구조 커널이 크기가 계속 커짐에 따라 용량 부족
  • 마이크로 구조 커널은 가장 기본적인 기능만 제공
  • 각 모듈은 세분화 되어있고, 모듈간의 정보교환은 프로세스 통신을 이용하여 이루어진다.

0개의 댓글