📖
Mini's Today I Learned
  • Today I Learned
  • 💻Computer Science
    • 🧱Computer Science
      • Computer Architecture
    • 🦕OperatingSystem
      • System Structure
      • 01. 운영체제 역할
      • 02. History로 이해하는 운영체제
      • 03. 운영체제 구조
      • 04. 프로세스 스케쥴링
      • 05. 스케쥴링 알고리즘
      • 06. 프로세스 상태와 스케쥴러
      • 07. 인터럽트
      • 08. 프로세스와 컨텍스트 스위칭
      • 09. 프로세스간 커뮤니케이션(IPC 기법)
      • 10. Thread(스레드)
      • 11. 가상메모리 (Virtual Memory System)
      • 12. 파일시스템 이해
      • 13. 부팅의 이해
      • 14. 가상머신(Virtual Machine)
  • 📈Database
    • MySQL CLI (Frequently used)
    • 1-Tier, 2Tier, 3Tier
    • Basic SQL
    • Built in function
    • Sub Query
    • View
    • Stored Program
    • index
    • Normalization(정규화)
    • Transaction
    • Transaction
  • 🌐 Network
    • 🔌 TCP&IP Basic
      • 01 TCP/IP 맛보기
      • 02 TCP/IP 개요
      • 03 통신 서비스와 프로토콜
      • 04 애플리케이션 계층
      • 05 트렌스포트 계층
      • 06 네트워크계층
      • 07 데이터 계층과 물리계층
      • 08 라우팅
      • 09 보안
      • 10 HTTP 프로토콜
    • 🐿️HTTP 완벽 가이드 요약
      • 1. HTTP: 웹의 기초
      • 2. URL 과 리소스
      • 3. HTTP Message
      • 4. Connection Management
      • 5. Overview of web server architectures
      • 6. Proxies
      • 7.Caching
      • 8. Integration Points: Gateways, Tunnels, and Relays
      • 9. Web Robots
      • 10. HTTP/2.0
      • 11. Client Identification and Cookies
      • 12. Basic Authentication
      • 13. Digest Authentication
      • 14. Secure HTTP
      • 15. Entities and Encodings
      • 16. Internationalization
      • 17. Content Negotiation and Transcoding
      • 18. Web Hosting
  • 🏴Language
    • ☕JAVA
      • Comparable vs Comparator
  • 🛠️ Framework
  • 🧩Design Pattern
    • 객체 지향 설계 원칙 (SOLID)
    • Design Pattern 개요
    • Template method
    • Singleton
  • 🐥FrontEnd
    • HTML&CSS
      • 01 Intro
      • 02 HTML Basic
      • 03 Content Section
      • 04 Block and Inline Elements
      • 05 Text Contents
      • 06 Inline Elements
      • 07 Multi Media
      • 08 Table&Form&etc
      • 09 Global Attribute & etc
      • 10 css basic
      • 11 css config
      • 12 css unit
      • 13 Box Model
      • 14 Font & Text
      • 15 Float(띄움) & Position
      • 16 Background
      • 17 Transitions & Transforms
      • 18 Animation & Multi Columns(다단)
      • 19 Flex
      • 20 Grid
    • Sass(SCSS)
    • TypeScript
    • Webpack Introduction
      • 웹팩의 기본 구조
      • CommonJS
      • ESM
      • WebpackConfig
        • 1. Handlebars
        • 2. Caching
        • 3. Minification & Mangling
        • 4. Mode(Development mode & Production Mode)
        • 5. 이미지 파일 모듈로 다루어보기(file-loader)
        • 6. 이미지 파일 모듈로 다루어보기(url-loader)
        • 7. SASS Loader
        • 8. Post CSS
        • 9. BLOWSERS LIST
        • 10. Stylelint
        • 11. Babel
      • Webpack-Practice
    • ETC
      • GIT
      • MarkDown
Powered by GitBook
On this page

Was this helpful?

  1. Computer Science
  2. 🦕OperatingSystem

03. 운영체제 구조

  • 응용프로그램 <=> 운영체제 <=> 하드웨어(시스템 리소스)관계

    • 도서관으로 비유

      • 시민: 응용프로그램

      • 도서관: 운영체제

      • 책: 하드웨어

    • 운영체제 역할

      • 시민은 원하는 책(자원)을 요청

      • 도서관은 적절한 책(자원)을 시민에게 빌려줌

      • 기한이 다 되면 도서관이 해당 책(자원)을 회수함

    • 관계

      • 운영체제는 응용프로그램이 요청하는 메모리를 허가 및 분배

      • 운영체제는 응용프로그램이 요청하는 CPU 시간 제공

      • 운영체제는 응용프로그램이 요청하는 I/O Device 사용을 허가/제어

    • 사용자 , 응용프로그램, 운영체제, 컴퓨터 하드웨어와 관계

  • 운영체제는 사용자 인터페이스 제공

    • 쉘(Shell)

      • 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스 제공하는 프로그램

      • CLI와 GUI 환경 두 종류로 분류

  • 운영체제는 응용 프로그램을 위해서도 인터페이스를 제공

    • API (Application Programming Interface)

      • 함수로 제공

      • open()

    • 보통은 라이브러리(library) 형태로 제공

      • C library

    • 시스템콜

      • 시스템 콜 또는 시스템 호출 인터페이스

      • 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수 제공

      • API 내부에서는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분

        API: 각 언어별 운영체제 기능 호출 인터페이스 함수(각 언어별 인터페이스) 시스템 콜: 운영체제 기능을 호출하는 함수

  • 운영체제를 만든다면

    • 운영체제 개발(kernel)

    • 시스템콜

    • API(library)개발

    • Shell 프로그램 개발

    • 응용프로그램 개발

  • 정리

    • 운영체제는 응용프로그램과 HD을 관리한다.

    • 사용자 인터페이스를 제공하기 위해 Shell을 제공한다.

    • 응용 프로그램이 운영체제 기능을 요청하기 위해, 시스템 콜을 제공한다.

      • 보통 시스템 콜을 직접사용하기보다는, 해당 시스템 콜을 사용해서

        만든 각 언어별 라이브러리(API)를 사용한다.

  • CPU Protection Rings

    • CPU도 권한 모드라는 것을 가지고 있다.

      • 사용자 모드 (user mode)

        • 응용프로그램이 사용

      • 커널 모드(kernel mode)

        • 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드

        • OS가 사용

      • intel CPU 기준으로 설명(back단)

        • Ring 3, Level 3: User mode

        • Ring 0, Level 0: Kernel mode

          쉬어가기 Kernel : (견과류, 씨앗의)알맹이, 핵심 Shell : 껍데기

  • 시스템 콜은 커널 모드로 실행

    • 커널 모드에서만 실행 가능한 기능들이 있음

    • 커널 모드로 실행하려면, 반드시 시스템 콜을 사용 해야 함(거쳐야함)

    • 시스템 콜은 운영체제 제공

  • 사용자 모드와 커널 모드

    • 함부로 응용프로그램이 전체 컴퓨터 프로그램을 헤치지 못함

    • 마치 주민등록 등본은 꼭 동사무소 또는 민원 24시에서 특별한 신청서 써야 발급 되는 원리

      • 동사무소 직원분들은 특별한 권한을 가지고, 주빈등록등본 출력 명령을 실행

  • 정리

    • 운영체제는 시스템 콜 제공

    • 프로그래밍 언어 별로 운영체제 기능을 활용하기 위해 시스템 콜을 기반으로 API제공

    • 응용프로그램은 운영체제 기능 필요 시, 해당 API를 사용해서 프로그램 작성

    • 응용프로그램이 실행 되서 운영체제 기능이 필요한 API를 호출하면

      시스템 콜이 호출 되서, 커널 모드로 변경되어

      OS 내부에서 해당 명령이 실행되고

      다시 응용프로그램으로 돌아간다.

Previous02. History로 이해하는 운영체제Next04. 프로세스 스케쥴링

Last updated 4 years ago

Was this helpful?

💻