Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

하루에 하나씩

[03] 운영 체제 본문

컴퓨터 구조

[03] 운영 체제

BGK97 2024. 3. 27. 15:33

운영체제

시스템 자원

  • 모든 프로그램은 하드웨어를 필요로 함
  • 이 때, 프로그램 실행에 필요한 요소들을 시스템 자원 또는 자원이라고 함

운영체제

  • 실행할 프로그램에 필요한 자원을 할당
  • 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램

사용자 영역과 커널 영역

  • 커널영역
    • 컴퓨터 부팅시 메모리 내 생성되는 공간, 운영체제가 적재되어 실행
  • 사용자 영역
    • 커널 영역을 제외한 나머지 영역
    • 사용자가 이용하는 응용 프로그램이 적재

응용 프로그램

  • 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램

운영체제의 역할

  • 프로그램을 메모리에 적재
  • 실행되지 않는 프로그램을 메모리에서 삭제
  • 위와 같은 과정으로 지속적으로 메모리 관리
  • 예시
    • 정부가 국가를 관리하기 위해, 관리 부서를 여러개로 나누어 나라의 자원을 관리한다.
    • 이와 마찬가지로, 운영체제는 CPU, 프로세스 및 파일시스템 등의 관리를 통해 컴퓨터의 자원을 관리한다.운영 체제를 알아야 하는 이유
  • 운영체제가 존재하지 않으면, 하드웨어 조작 코드를 개발자가 모두 직접 작성해야함.
  • 운영체제는 프로그램이 하드웨어 상에서 어떻게 작동하는지 자세히 알고 있음
  • 이를 우리에게 상세하게 알려줄 수 있으며, 이에 따라 문제해결의 실마리를 찾을 수 있음
    • 우리가 컴퓨터를 사용하다가 뜨는 에러메세지나, 하드웨어 실행 실패시 나타나는 오류에 대한 메세지 등...

운영체제의 큰 그림

  • 커널에 대해 알기
  • 프로그램이 운영체제로 부터 어떤 도움을 받으며 실행되는지 알기(이중 모드, 시스템 호출)

커널 영역

  • 운영체제의 심장
  • 자원에 접근하고 조작하는 기능, 프로그램이 올바르게 실행할 수 있도록 하는 기능이 포함
  • 커널에 따라 프로그램이 하드웨어를 이용하는 양상과 전체의 성능을 좌지우지함

  • 운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스도 있음
    • 사용자 인터페이스
    • 윈도우의 바탕화면과 같이 사용자가 컴퓨터와 상호작용 가능한 곳

사용자 인터페이스

  • 그래픽 유저 인터페이스(GUI)
    • 그래픽을 기반으로 컴퓨터와 상호작용
    • 바탕화면 생각하면 됨
  • 커맨드 라인 인터페이스(CLI)
    • 명령어 기반 컴퓨터와 상호작용
    • CMD 같은거 생각하면 됨

이중모드와 시스템 호출

  • 운영체제는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 차단, 자원 보호
  • 운영체제에 도움을 요청한다 == 운영체제 코드를 실행하려고 한다

이중 모드

  • CPU가 명령어를 실행하는 모드를 크게 커널과 사용자 모드로 구분하는 것
  • CPU 명령에 따라 사용자, 커널 모드가 결정

사용자 모드

  • 운영체제 서비스를 제공 받을 수 없는 실행 모드
  • 커널 영역의 코드를 실행할 수 없음
  • 일반적인 응용프로그램 실행 방식
  • 하드웨어 접근하는 명령어를 실행할 수 없음

커널 모드

  • 운영체제 서비스를 제공받을 수 있는 실행 모드
  • 커널 영역의 코드를 실행 가능
  • 자원 접근 가능

시스템 호출

  • 운영체제 서비스를 제공 받기 위한 요청
  • 사용자 모드에서, 시스템 호출을 통해 커널 모드로 전환 가능
  • 일종의 소프트웨어적 인터럽트로 입출력장치가 아닌 특정 명령어에 의해 발생

시스템 호출 루틴

  1. 시스템 호출을 발생, 커널모드로 전환 이 때, CPU는 작업하던 데이터를 백업하고, 코드 수행
  2. 운영체제 내의 하드디스크에 데이터를 저장
  3. 실행이 끝나면, 다시 사용자 모드로 복귀

운영체제의 핵심 서비스

프로세스

  • 실행 중인 프로그램
  • CPU는 일반적으로 한 번에 하나의 프로세스만 실행 가능
  • 조금씩 번갈아가면서 수행

자원 접근 및 할당

  • 모든 프로세스는 실행을 위해 자원을 필요로 함

  • 운영체제가 자원에 접근하여 프로세스에 필요한 자원 할당

  • CPU

    • 프로세스들을 공정하게 작업할 수 있도록 CPU 할당을 조절
    • 이를 CPU 스케줄링이라 함
  • 메모리

    • 메모리에 적재된 프로세스들을 적절하게 적재할 수 있도록 관리
  • 입출력 장치

    • 인터럽스 서비스 루틴

      파일 시스템 관리

  • 파일을 생성, 삭제하고 관련 파일들을 디렉터리에 묶어 보관

    • 이를 파일 시스템 이라 한다.

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

[06] 동기화  (0) 2024.04.17
[05] CPU 스케줄링  (1) 2024.04.17
[04] 운영체제 - 프로세스와 스레드  (0) 2024.03.27
[02] 입출력 장치  (0) 2024.03.20
[01] 보조기억장치  (1) 2024.03.13