생각, 고민, 문제해결의 기록

운영체제의 역할과 구조 본문

CS/운영체제

운영체제의 역할과 구조

김예티 2022. 8. 2. 16:16

운영체제(Operating System)란?

컴퓨터 시스템의 하드웨어, 소프트웨어자원들을 효율적으로 운영 및 관리함으로써
사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 한 시스템 소프트웨어

운영체제의 역할

1. 시스템 자원 관리자 역할

- 시스템 자원은 컴퓨터의 하드웨어들을 뜻하고 운영체제가 그 하드웨어들을 관리

 

2. 사용자와 컴퓨터간의 커뮤니케이션 지원 역할

- 사용자가 컴퓨터를 사용할 수 있게끔 터미널(쉘) 인터페이스등을 제공

 

3. 응용프로그램 제어 역할

- 응용프로그램의 접근권한, 실행 및 중지등을 운영체제에서 관리


운영체제의 구조

운영체제 구조

  • 하드웨어
    - 컴퓨터의 물리적인 구성요소.중앙처리장치, 주기억장치, 보조기억장치, 입력장치, 출력장치 등으로 구성되어 있으며
       컴퓨터의 입력 / 연산 / 제어 / 기억 / 출력 등의 기능을 구현
    - 주요 장치들: CPU, RAM, 하드디스크, 키보드, 마우스 등
  • 디바이스 드라이버
    - 하드웨어와 운영체제를 연결하기 위한 소프트웨어.
      커널공간에서 응용프로그램과 하드웨어 간의 데이터를 주고 받는 기능을 제공


  • 커널
    - 항상 메모리에 올라가 있는 운영체제의 핵심부로, 하드웨어와 응용프로그램 사이에서 인터페이스를 제공하고
       컴퓨터 자원들을 관리하는 역할을 함
    - 다만 커널은 항상 컴퓨터 자원만 바라보고 있어서 사용자와의 상호작용은 지원하지 않음.
       따라서 사용자와의 직접적 상호작용을 위해 쉘이라는 프로그램을 제공

  • 시스템 콜
    - 응용프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스(함수)
    - 시스템 콜은 거의 모든 코드의 실행에서 발생하며, 커널에 요청하여 커널 모드에서 처리하는 방식.

  • 인터페이스
    서로 다른 2개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점 또는 경계면.
      즉 사용자가 기기를 쉽게 동작할 수 있도록 도와주는 시스템.

  • 응용 프로그램
    - 우리가 흔히 사용하는 Application, App이란 용어가 바로 응용 프로그램을 뜻한다.

API와 SDK

  • API (Application Programming Interface)
    - 모듈화하여 만들어진, 특정 기능을 제어/제공하는 인터페이스. 우리가 사용하는 대부분의 애플리케이션은 API에 의존하고 있다.

  • 유형별 API
    1. pricate API: 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행하기 때문에 제 3자에게 노출되지 않는다.
    2. public API: 모두에게 공개되고 누구나 제한 없이 API를 사용할 수 있다.
    3. partner API: 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있다. 비즈니스 관계에서 사용되는 편이고 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용된다.

  • SDK (Software Development Kit)
    - 어떤 소프트웨어를 만들기 위한 도구 모음. 그 도구엔 API도 포함되어 있다.
    - ex) Android SDK, JDK, iOS SDK, .NET Framework SDK ....

  • API와 SDK의 차이점
  API SDK
목적 소프트웨어 연결 및 통합 다양한 개발 도구 포함
형질 가볍고 빠르면 전문화되어있음 더 견고함, 많은 유틸리티 포함
사용 사례 애플리케이션에 특정 기능을 추가하는데 사용 새로운 어플리케이션을 생성하거나 하나의 패키지로 많은 기능을 추가하는데 사용됨
SDK는 키트를 얻는 것과 같다. IKEA 가구처럼 부품과 사용설명서까지 포함된 키트를 의미한다.
API는 어떤 가구를 만들기 위한 부품하나하나를 의미한다. 각 부품은 다른 브랜드의 것일 수 있고, 만들 수 있는 가구는 무한하다.
API는 SDK의 일부가 될 수 있다는 점에서 SDK가 API보다 더 큰 개념이라고 할 수 있다.

'CS > 운영체제' 카테고리의 다른 글

PCB와 컨텍스트 스위칭(Context Switching)  (0) 2022.08.10
프로세스와 스레드  (0) 2022.08.10
컴퓨터 성능 향상 기술  (0) 2022.08.08
커널의 구성  (0) 2022.08.03