[시스템 소프트웨어]01 운영체제

yesman·2021년 12월 11일
0

시스템 소프트웨어

목록 보기
1/23

컴퓨터 시스템

App이 실행될 수 있는 H/W + S/W 환경

-하드웨어 4대 구성요소

  • 프로세서(CPU)
    GPU도 있고 연산 능력이 굉장이 좋아야 한다. 예)NVDIA
  • 주메모리(Main Memory)
  • 입출력장치(Input-Output Device)
  • 대용량 저장 장치(Secondary memory)

프로세서, 주메모리, 입출력장치가 3대 구성 요소이다.

-소프트웨어 구성

  1. 응용 소프트웨어
    사용자의 업무를 지원하거나 도움을 주는 모든 컴퓨터 소프트웨어
    워드프로세서, 프레젠테이션, 스프레드 시트 등의 모든 사용자들의 업무를 지원하기 위한 모든 소프트웨어가 이에 해당한다.
  2. 시스템 소프트웨어
    응용 소프트웨어를 개발하는데 기반이 되는 소프트웨어
    운영체제 및 에디터, 컴파일러, 어셈블러, 디버서 등 유틸리티 소프트웨어

운영체제란 2가지 기본적인 기능을 수행하는 bare machine상의 특정 소프트웨어 계층이다.
bare machine: 전원이 켜지지 않은 상태

2가지 기능:

  1. 컴퓨터 시스템이 보유하고 있는 하드웨어 및 소프트웨어 자원관리
    자원 관리는 높은 효율성과 공정성을 요구한다. 시간, 공간, 프로세스, 파일 등을 관리한다.
    시간: 스케줄링 - CPU 및 디스크 스케줄링
    공간: 저장장치 - 주메모리 및 secondary storage
    프로세스: 동기화 - synchronization, deadlock handling
    파일: 파일시스템 관리
  2. 편리하고 친숙한 컴퓨터가 되도록 GUI제공
    사용자 인터페이스를 통해 편리성과 친숙성을 제공한다. (프로세스 관리, 파일 조작, 방해처리, 오류탐지 및 처리, 보호 및 보안, 결함 허용성 및 실패 복구)

운영체제 서비스

자원 공유를 통해 시스템의 효율적인 동작을 위한 기능이 있다.

  • 자원할당: cpu 프로세스 할당, main memory 할당
  • 보호 및 보안: 보호는 시스템이 보유하고 있는 모든 자원(소프트웨어 또는 파일)에 대한 접근을 관리, 제어하는 것이다. 보안은 외부로부터의 침투에 대한 방어이다. 사용자 인증으로부터 또는 불법적 접근 시도로부터 외부 입출력 장치 방어까지 포괄적인 개념이다.

시스템 호출(System Call)은 운영체제 서비스를 사용하기 위한 프로그램 인터페이스이다. 보통 C 혹은 C++로 작성되어 있으며 최근에는 직접적인 시스템 호출보다는 고급의 API를 사용하여 액세스된다.

예를 들어 직접 시스템 호출 함수들을 사용한다면 매우 복잡한 과정을 거친다. 그 모든 것이 API를 통해 이루어진다.

표준 Win32 API를 사용하는 경우, ReadFile()과 WriteFile() 2줄이면 된다.

user application을 써서 호출하면 system call interface를 통해 kernel mode로 들어간다. 커널 모드에서 요청한 것을 가지고 다시 system call interface를 통해 user application으로 돌아간다.

운영체제 설계 및 구현 개념

모든 사용자들은 컴퓨터 시스템이 사용하기 쉽고 신뢰성 높고 빠른 컴퓨터 시스템이기를 원한다. 시스템 설계 목표는 설계 및 구현하기 쉽고 유지 보수성이 좋고 융통성도 좋아야한다. 이러한 시스템을 구현하기 위해 모듈단위로 구성하고 추상적이어야한다. 필요한 기능을 모두 제공해야하고 확장이 용이해야한다.(새로운 장치 및 서비스의 점직적 추가와 자원의 동적 배치가 가능해야한다.)

profile
유니티

0개의 댓글