ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] 운영체제(OS, Operating System)
    Computer Science/CS 2022. 5. 10. 18:28
    728x90

    1. 운영체제(OS, Operating System) 이란?

    컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다. 

    컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로써 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다.

     

    2. 운영체제 기능

       운영체제의 기능은 크게 자원관리, 시스템관리로 분류된다.

       (1) 자원관리 : 메모리 관리(메인 메모리, 보조기억장치), 프로세스 관리, 주변장치 관리, 파일(데이터) 관리

       (2) 시스템 관리 : 시스템 보호(사용자 권한 부여), 네트워크(통신), command interpreter 등의 기능을 지원한다.

     

    3. 부팅(Booting)

    Processor는 일반적으로 CPU를 말한다. Main Memory를 보면 ROM과 RAM으로 분류되어 있다. 

      - ROM : 비휘발성, 메모리에서 극히 일부만 차지

      - RAM : 휘발성, 메모리의 대부분을 차지하며, 실제 프로그램이 할당되는 곳

    컴퓨터 구조

     

    컴퓨터의 전원이 켜지면 프로세서(CPU)에서 ROM의 데이터를 읽는다. ROM안에는 POST(Power-On Self-Test), 부트 로더(Boot Loader)가 저장되어 있다.

    POST는 전원이 켜지면 가장 먼저 실행되는 프로그램으로 현재 컴퓨터의 상태를 검사한다.

    POST작업이 끝나면 부트 로더가 실행된다.

    부트 로더는 하드디스크에 저장되어 있는 운영체제를 찾아서 메인 메모리(RAM)에 가지고 온다. 이러한 부트 로더의 과정을 부팅이라고 한다.

    부팅 과정

    4. 커널(Kernel)

    컴퓨터 전원을 키면 운영체제는 동시에 수행된다. 

    소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프로그램이 올라가 있어야한다.

    운영체제 자체도 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라가야 한다.

    하지만, 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할 것이다.

    따라서, 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 된다. 이 때 메모리에 상주하는 운영체제의 부분을 커널이라고 한다. 또 이것은 좁은 의미의 운영체제라고 한다. 

    즉, 커널은 메모리에 상주하는 부분으로써 운영체제의 핵심적인 부분을 뜻한다. 

    넓은 의미의 운영체제는 커널 뿐 아니라 각종 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념이다.

    (보통은 운영체제라고 하면 커널을 말하게 된다.)

     

    컴퓨터 (Computer)

       - 하드웨어 (Hardware)

       - 소프트웨어 (Software)

              - 응용 프로그램( ex: MS Office, Chrome, VSCode 등)

              - 운영 체제(OS) (ex : Windows, MacOS, Linux 등)

                      - 시스템 프로그램 (ex : Shell 등)

                      - 커널(Kernel) : 운영체제의 핵심부

     

    커널의 가장 큰 역할은 컴퓨터의 물리적 자원(하드웨어)와 추상화 자원을 관리하는 것입니다.

    커널이 물리적 자원을 추상화하며 용어가 달라집니다.

               [물리적 자원 이름-> 추상화한 자원 용어]

                   cpu    -> Task(작업)

                memory -> page, segment

                   disk   -> file

                network -> socket

     

    즉, "사용자 -> 시스템 프로그램(Shell 등을 사용) -> 커널 -> 컴퓨터 자원 접근" 을 알 수 있습니다.

     

    728x90

    'Computer Science > CS' 카테고리의 다른 글

    [CS] 정규 표현식 Regular Expression, Regex  (0) 2023.01.19
    [CS] Graph, Tree  (0) 2022.11.28
    [CS] 동기 비동기 프로그래밍  (0) 2022.09.07
    [CS] Windows kernel programming  (0) 2022.09.07
    [CS] SSL/TLS통신  (0) 2022.09.07

    댓글

© 2022. code-space ALL RIGHTS RESERVED.