01 _ 운영체제 소개

SeomIII·2021년 10월 21일
0

시스템소프트웨어

목록 보기
1/4

<컴퓨터 시스템 (플랫폼)>

  • 하드웨어 4대 구성 요소
  1. 프로세서(cpu)
  2. 주메모리
  3. 입출력장치
  4. 대용량 저장장치
  • 소프트웨어 구성
  1. 응용 소프트웨어
    : 사용자의 업무를 지원하거나 도움을 주는 모든 컴퓨터 소프트웨어
  2. 시스템 소프트웨어
    : 응용 소프트웨어를 개발하는데 기반이 되는 소프트웨어 : 운영체제 및 (에디터,컴파일러,어셈블러,디버거) = 유틸리티 소프트웨어
  • 컴퓨터 시스템의 3계층 단순 구조
    : 하드웨어 계층 /전원 켜지지 않은 bare machine 상태 -
    운영체제- (유틸리티) /전원이 공급되어 운영체제가 올라온 상태 -
    응용소프트웨어 / 사용자가 컴퓨터를 사용하여 자신의 업무를 진행하고 있는 상태

<운영체제란?>
: 2가지 기본적인 기능을 수행하는 bare machine 상의 특정 소프트웨어 계층

  • 컴퓨터 시스템이 보유하고 있는 하드웨어 및 소프트웨어 자원 관리
    : 높은 효율성과 공정성을 요구함 - 스케쥴링/저장장치/동기화/파일시스템
  • user friendliness(GUI) 제공

<운영체제 서비스>

  • 컴퓨터 사용자를 위한 서비스
    : GUI / program 수행 / 입출력 동작 / file 조작 및 관리 /
    통신 - 프로세스간 통신 / 오류탐지 및 처리

  • 자원 공유를 통해 시스템의 효율적인 동작을 위한 기능
    : 자원할당
    : 보호(내부) 및 보안(외부)


<시스템 호출 - system calls>

  • 운영체제 서비스를 사용하기 위한 프로프램 인터페이스
    : 최근에는 직접적인 시스템 호출보다는 고급의 API를 사용하여 system call을 한다. 하지만 직접적으로 system call을 하면 더 빠르다

  • API - system call - OS 사이의 관계
    : user mode로 돌다가 API가 system call을 하면 kernel mode로 바뀐다. 끝나면 다시 user mode로 돌아옴.
    == app이 실행되면 user mode, kernel mode를 번갈아 가면서 실행된다.


    <운영체제 설계 및 구현 개념>
  • 모든 사용자들은 컴퓨터 시스템이 사용하기 쉽고 / 신뢰성 높고 / 빠른 시스템이길 원한다.

  • 시스템 설계 목표는 설계 및 구현이 쉽고 / 유지 보수성이 좋고 / 오류도 발생하지 않고 / 효율적으로 동작.. 하는 것이 목표이다.

    == 추상화가 잘되어야 한다(modular 해야함)
    == 필요한 기능은 모두 제공해야한다 (complete)
    == 확장이 용이해햐 한다 (extensible)


  • 기본 설계 원리 : policy(what)와 mechanism(how)을 분리해서 생각하기

  • 기존의 운영체제 구성모델

  1. layered architecture
  2. kernel-based (일반 운영체제)
    • microkernel system structure
      : 가능한 많은 부분을 응용 소프트웨어화 하여 kernel의 크기를 최소화 시킨다.

      장)
      커널에 기능을 추가하기에 용이하다
      이식이 용이하다
      오류가 날 확률이 적다
      보안성이 높다

      단)
      사용자공간과 커널사니의 통신이 너무 빈번하게 일어나서 성능 overhead

  3. server-based(client/server) _ cloud 시스템 ex) 아마존, 구글,네이버
  4. virtual machines _ java jvm : 이식성이 좋다
profile
FE Programmer

0개의 댓글