출처: https://typemin.tistory.com/7 [TypeLOG:티스토리]

전 페이지에서 다루었듯이 운영체제는 자원을 관리하고 자원을 보호한다. 그리고 사용자가 응용프로그램이 컴퓨터 자원을 쉽게사용 할 수 있는 인터페이스를 제공한다.

또 운영체제의 핵심이라고 말할수 있는 커널이 있다고 하였다.

운영체제 구조

위 그림에서 운영체제는 크게 2가지로 나누어 지는데 인터페이스 커널이다.

인터페이스


커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할

우선 인터페이스란 서로다른 두 시스템을 연결해주는 것을 말한다. 인터페이스의 종류를 보면 여러가지가 있는데

명령 인터프리터

명령 인터프리터를 예를 들자면 window에 터미널 , macOS bash를 들수 있겠다. 예전에 친구들과 게임을 하면서 terminal에 ipconfig를 작성해본 기억이 있을것이다.
또 macOs에서 rm -rf (삭제) 와 같은 명령을 실행해본적도 있을것이다.

그래픽 사용자 인터페이스

작업관리자 등이 있다.

커널


운영체제 구성요소 중 항상 메모리(RAM)에 올라가 있는 운영체제의 핵심 부분으로써 하드웨어와 프로그램 사이에서 인터페이스를 제공하는 역할을 하며 컴퓨터 자원들을 관리하는 역할

커널이 하는일


  • 프로세스 관리 : 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경을 제공한다.
  • 메모리 관리 : 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공한다.
  • 파일 시스템 관리 : 데이터를 저장하고 접근할 수 있는 인터페이스를 제공한다.
  • 입출력 관리 : 필요한 입력과 출력 서비스를 제공한다.
  • 프로세스 간 통신 관리 : 공동 작업을 위한 각 프로세스 간 통신 환경을 지원한다.

커널의 구성


단일형 구조 커널

초창기의 운영체제 구조였다. 커널의 핵심 기능을 구현하는 모듈들이 구분없이 하나로 구성되어있는 구조이다.

모듈 간의 통신 비용이 줄어들어 효율적인 운영이 가능하지만 , 모듈이 묶여 있어 아래와 같은 문제점들이 생겼다.

  • 모든 모듈이 하나로 묶여 있기 때문에 버그나 오류를 처리하기가 어려움
  • 운영체제의 여러 기능이 서로 연결되어 있어 상호 의존성이 높기 때문에 기능상의 작은 결함이 시스템 전체로 확산될 수 있음
  • 다양한 환경의 시스템에 적용하기 어려움

마이크로 구조 커널

  • 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공
  • 커널의 각 모듈은 세분화되어 존재하고 모듈 간의 정보 교환은 프로세스 간 통신을 이용하여 이루어짐

시스템 호출


커널이 자신을 보호하기 위해 만든 인터페이스다. 커널은 사용자나 응용 프로그램으로 부터 컴퓨터 자원을 보호하기위해 자원에 직접 접근하는 것을 차단한다.

만약 직접 접근 을 하게 된다면 ? 응용 프로그램이 원하는 위치에 데이터 저장(충돌)이 있을것이고, 하나의 응용프로그램이 다른 응용프로그램이 사용중인 데이터를 삭제가 가능할것 이다.

그래서 시스템 호출은 커널이 제공하는 시스템 자원의 사용과 연관된 함수이다. 이러한 인터페이스(규칙)이 있기 때문에 응용프로그램이 하드웨어 자원에 접근하거나 서비스를 이용할때는 시스템 호출을 사용해야된다.

❓ 그러면 커널에 시스템호출을 하지않고 접근해서 자원을 건드릴수있다면 어떻게 될까 ?

이러한 이유때문에 운영체제는 커널이 제공하는 서비스를 시스템 호출로 제한하고 다른 방법으로 커널에 접근하는것을 막음으로써 보호한다.

드라이버


커널과 하드웨어의 인터페이스다.

  • 디바이스 드라이버라고도 불림
    • 마우스, 키보드 드라이버
    • 그래픽 카드 드라이버 등..

 

보안해야될 내용이거나 틀린내용이 있다면 지적해주시면 공부하는데 많은 도움이 될거같습니다. 지적은 항상 감사합니다

 

 

반응형

'Programming > CS' 카테고리의 다른 글

운영체제란 ?  (0) 2023.04.19

🍀 운영체제와 컴퓨터


운영체제 : 컴퓨터의 구성요소, 자원을 관리 및 운영하는 시스템소프트웨어의 구조 및 기능
쉬운말로 정의하자면 사용자나 응용 프로그램이 컴퓨터 자원을 쉽게 사용할 수 있는 인터페이스를 제공하여 컴퓨터 자원을 보호하고 자원을 사용, 결과를 돌려주는 시스템 소프트웨어이다.

운영체제의 정의


  • 자원 관리
    • 사용자는 자원을 직접 접근 불가능하게 만들어서 자원을 보호한다.
    • 인터페이스 환경 제공
  • 컴퓨터의 성능 향상
    • 보안 업데이트 등
  • 운영체제는 관리자(supervisor)
    • 실행중인 프로그램 관리, 메모리 관리, 파일과 디스크 장치 관리, 입출력 장치 관리, 사용자 계정 등
  • 운영체제는 소프트웨어(software)
    • 커널이라고 불리는 핵심 코드와 UI/도구 프로그램들, 장치를 제어하는 디바이스 드라이버들로 구성한다.

그래서 운영체제는 컴퓨터 하드웨어나 응용소프트웨어 등 자원 관리를 목적으로 사용한다.
프로세스, 메모리, 파일 시스템, 입출력 장치 등 자원 관리와 사용자 관리를한다.

컴퓨터 자원이란


CPU 시간, 메모리 공간, 파일 저장 공간, 입출력장치 등

  • 다시 말하면 컴퓨터 하드웨어
    • 하드웨어 자원 – CPU, 캐시나 메모리, 키보드, 마우스, 디스플레이, 하드 디스크, 프린터 등
    • 소프트웨어 자원 - 응용프로그램
    • 데이터 자원 - 파일, 데이터베이스 등

🍀 운영체제의 역할


위에 정의에서 간단하게 설명했듯 운영체제는 컴퓨터 자원을 관리하고, 또 사용자로부터 컴퓨터 자원을 직접 접근하는것을 보호해준다.

자원관리


  • 응용 프로그램 및 사용자에게 컴퓨터 자원(하드웨
    어)을 할당하여 작업 할 수 있도록 함
  • 자원을 요청한 프로그램이 여러 개라면 적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회수
    하여 다른 응용 프로그램에 할당
  • 운영체제는 자원에 대한 독점(exclusive) 권한 소유
  • 자원에 대한 모든 관리 권한은 운영체제에게 있음
  • 자원 할당, 자원 공유, 자원 액세스, 자원 입출력 등

자원보호


비정상적인 작업으로부터 컴퓨터 자원을 보호한다.

운영체제는 사용자가 실행하는 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호한다. 만약 자원을 운영체제가 보호하지 않는다면 프로그램들이 CPU,메모리,하드 디스크 등 자원에 마음대로 접근하고 조작한다면 자원의 질서가 무질서하게 관리가 될것이고 이는 큰 버그가 될것이다.

그래서 운영체제는 자원에 대한 접근을 오직 자신을 통해서만 접근하도록 자원을 보호한다. 이러한 과정을 운영체제의 핵심인 커널에서 실행하는데 이는 다음 포스트에서 다루겠다.

하드웨어 인터페이스 제공


  • CPU, 메모리, 키보드, 마우스와 같은 하드웨어를
    사용자가 일관된 방법으로 사용할 수 있도록 하드웨어 인터페이스 제공
  • 사용자 인터페이스 제공
    • 사용자가 운영체제를 편리하게 사용하도록 지원
      • EX) 윈도우의 그래픽 사용자 인터페이스(GUI))

🍀 운영체제의 기능


  • CPU/프로세스 관리(process management)
  • 메모리 관리(memory management)
  • 파일 시스템 관리(file system management)
  • 장치 관리(device management)
  • 네트워크 관리
  • 보안 관리
  • 기타 관리
    • 사용자 관리 - 사용자 계정 관리
    • 통계 - CPU, 메모리, 네트워크 사용 시간이나 사용자의 접속 시간 등
    • 오류 발견 및 대응
    • 부팅(booting)
반응형

'Programming > CS' 카테고리의 다른 글

운영 체제의 구성 - 커널  (0) 2023.04.20

+ Recent posts