컴퓨터 구조와 운영체제 핵심 [운영체제편]

    728x90

    운영체제

    <a href="https://www.freepik.com/free-vector/kanban-method-concept-illustration_33756682.htm#query=%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%20%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81&position=23&from_view=search&track=ais">Image by storyset</a> on Freepik 출처

     

    👉 컴퓨터가 실행될 때 마땅히 필요한 요소 (컴퓨터의 4가지 핵심부품 포함)

    ex) 리눅스, ios, 윈도우, 안드로이드 등등

     

     

    - 자원들을 관리하는 특별한 프로그램

    - 실행중인 프로그램(프로세스)을 관리하는 특별한 프로그램

    - 메모리의 커널 영역에 위치되어 있음

    - 자원 그 중에도 메모리의 어디에 적재되어야 할지 관리

     

     

    우리가 쓰는 프로그램이 위치하는 공간 => 사용자 영역

    운영체제 => 커널 영역

     

     

    if) 실행할 프로세스의 크기가 운영체제에 비해 클 경우

    => 실행 가능

    이러한 기능을 해주는게 운영체제이다.

     

    어떻게 되는지 궁금하다면 페이징과 스와핑을 공부하면 됩니다.

     

    프로세스

    프로세스는 번갈아 가면서 빠르게 실행되어 동시에 실행되는 것처럼 보임

    이때 CPU를 필요로 함

     

    어떤 프로세스를 얼마 동안 언제 실행되게 할까? 를 할당해주는 것

    👉 운영체제가 하는 일 (운영체제의 스케줄링)

     

     

    Q. 수많은 프로세스들이 자원에 마구 직접 접근해도 괜찮을까?

    이 문제를 해결해주는 것도 운영체제 (자원 보호, 문지기 역하)

     

     

    + 응용프로그램은 하드디스크에 직접적으로 접근 불가능

    + 운영체제를 거쳐서 하드웨어에 접근

     

    자원들을 효율적으로 관리하기 위해서 CPU 관리 프로세스 관리 메모리 관리 등등으로 부서를 나누는 경우가 있음

    운영체제가 프로세스를 어떻게 관리하는지를 아는 것이 개발자에게 필요한 내용 (프로세스 동기화)

     

    [ 결과 ]

    프로그램을 만드는 개발자는 운영체제를 알아야한다.

    내가 개발한 프로그램은 운영체제의 어떤 도움을 받는지 근원적인 프로그래밍을 가능하게 한다.

    이를 통해 오류메세지에 대한 깊은 이해할 수 있다. => 문제해결능력 배양

     

     


     

    이 글은 게임 클라이언트 개발 지망 고등학생의 공부 기록 글입니다.

    혹시나 잘못 이해한 내용은 댓글을 통해 알려주시면 감사하겠습니다!

     

    아래 영상을 참고하여 공부하였습니다.

    https://www.youtube.com/watch?v=LBqJwmFMQHI

    728x90

    '컴퓨터 구조' 카테고리의 다른 글

    컴퓨터 구조와 운영체제 핵심 [컴퓨터 구조편]  (1) 2023.10.10
    MVC 패턴?  (0) 2023.09.23

    댓글