[03] 운영 체제

2024. 3. 27. 15:33·컴퓨터 구조와 운영 체제(책)

운영체제

시스템 자원

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

운영체제

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

사용자 영역과 커널 영역

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

응용 프로그램

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

운영체제의 역할

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

운영체제의 큰 그림

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

커널 영역

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

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

사용자 인터페이스

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

이중모드와 시스템 호출

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

이중 모드

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

사용자 모드

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

커널 모드

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

시스템 호출

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

시스템 호출 루틴

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

운영체제의 핵심 서비스

프로세스

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

자원 접근 및 할당

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

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

  • CPU

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

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

    • 인터럽스 서비스 루틴

      파일 시스템 관리

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

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

'컴퓨터 구조와 운영 체제(책)' 카테고리의 다른 글

[06] 동기화  (1) 2024.04.17
[05] CPU 스케줄링  (2) 2024.04.17
[04] 운영체제 - 프로세스와 스레드  (2) 2024.03.27
[02] 입출력 장치  (1) 2024.03.20
[01] 보조기억장치  (1) 2024.03.13
'컴퓨터 구조와 운영 체제(책)' 카테고리의 다른 글
  • [05] CPU 스케줄링
  • [04] 운영체제 - 프로세스와 스레드
  • [02] 입출력 장치
  • [01] 보조기억장치
BGK97
BGK97
사용자 입장에서 한번 더 생각하는 개발자로 성장하고 싶은 사람입니다.
  • BGK97
    꾸준히, 열심히
    BGK97
  • 전체
    오늘
    어제
    • 분류 전체보기 (111)
      • 알고리즘 (73)
      • 컴퓨터 구조와 운영 체제(책) (8)
      • 네트워크 (5)
      • React (10)
      • 경험한 에러들 (3)
      • HTML, CSS, JavaScript (8)
      • 자료구조 (1)
      • 이것이 컴퓨터 과학이다(책) (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
BGK97
[03] 운영 체제
상단으로

티스토리툴바