유성이의 공부일지(9) - 혼자공부하는 컴퓨터 구조 + 운영체제 9장

2024. 7. 9. 20:40·공부 기록일지

09-1. 운영체제를 알아야 하는 이유

운영체제란

- 프로그램 실행에 마땅히 필요한 요소를 가리켜 시스템 자원 또는 자원이라고 함

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

- 인터넷 브라우저, 게임과 같은 프로그램

- 운영체제는 매우 특별한 프로그램이기 때문에 항상 컴퓨터가 부팅될때 메모리 내 커널 영역이라는 공간이 따로 적재되어 실행함

- 사용자가 이용하는 응용 프로그램이 적재되는 영역을 사용자 영역이라고 함

- 응용 프로그램은 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램을 의미

 

운영체제를 알아야 하는 이유

- 운영체제가 없다면 하드웨어를 조작하는 코드를 개발자가 직접 작성해야 함

- 프로그램을 메모리에 적재하는 코드, CPU로 하여금 1과 2를 더하게 하는 코드, 모니터에 계산 결과를 출력 하는 코드를 개발자가 직접 작성해야 함

- 운영체제는 현재 하드웨어의 상태는 어떤지, 우리의 코드가 어떻게 실행되는지, 하드웨어 상의 어떤 문제가 있는지 알려줄 수 있음

- 이를 통해 문제 해결의 실마리를 찾을 수 있음

 

09-2. 운영체제의 큰 그림

운영체제의 심장, 커널

- 커널은 자원에 접근하고 조작하는 기능, 프로그램이 올바로 안전하게 실행하는지 운영체제의 핵심 서비스를 담당하는 부분

- 마치 사람의 심장, 혹은 자동차의 엔진과도 같음

- 운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스도 있음

- 사용자 인터페이스는 윈도우의 바탕화면과 같이 사용자가 컴퓨터와 상호작용 할 수 있는 통로

- 운영체제가 제공하는 사용자 인터페이스의 종류는 GUI, CLI 가 있음

 

출처 : dar0m [OS] 시스템 호출(system call) - 티스토리

 

이중 모드와 시스템 호출

- 운영체제는 사용자가 실행하는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호함

- 응용 프로그램들이 자원에 접근하려 한다면, 오직 자신을 통해서만 접근할 수 있게함!!

- 이중 모드는 CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식

- 운영체제 서비스를 제공받기 위한 요청을 시스템 콜이라고 함

- 사용자 모드로 실행되는 프로그램은 시스템 호출을 통해 커널 모드로 전환하여 운영체제 서비스 제공 가능

- 소프트웨어 인터럽트는 인터럽트를 발생시키는 특정 명령어에 의해 발생함

 

사용자 모드

- 운영체제 서비스를 제공받을 수 없는 실행모드

- 즉 커널 코드를 실행 할 수 없는 모드

- 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행

- 사용자 모드로 실행 중인 CPU는 입출력 명령어와 같이 하드웨어 자원에 접근하는 명령어를 실행 할 수 x

 

커널모드

- 운영체제 서비스를 제공받을 수 있는 실행모드

- 커널 영역 코드 실행 가능함

- 커널 모드로 실행중인 CPU는 자원에 접근하는 명령어를 비롯한 모든 명령어 실행 가능o

- 운영체제는 커널 모드로 실행 되기에 자원 접근 o

 

운영체제의 핵심 서비스

 

프로세스 관리

- 실행 중인 프로그램을 프로세스라고 함

- 일반적으로 하나의 CPU는 한 번에 하나의 프로세스만 실행가능

- CPU는 이 프로세스를 번갈아 하며 실행

 

자원 접근 및 할당

 

CPU

- 일반적으로 메모리에는 여러 프로세스가 적재되고, 하나의 CPU는 하나의 프로세스만을 실행 가능

- 이미 하나의 프로세스가 CPU를 사용하고 있다면 기다려야 함!!

- CPU 스케줄링은 프로세스들에 공정하게 CPU를 할당하기 위해 어떤 CPU를 이용해야 할지, 얼마나 오래 사용할지 결정하는 것

 

메모리

- 메모리에 적재된 프로세스들은 크기도, 적재되는 주소도 가지각색임

- 같은 프로세스라 할지라도 실행할 떄마다 적재되는 주소가 달라짐

- 운영체제는 새로운 프로세서가 적재될 때 마다 어느 주소에 적재해야 할지 결정해야 함

 

입출력장치

- 인터럽트 서비스 루틴은 운영체제가 제공하는 기능으로 커널 영역에 있음

- 입출력장치가 CPU에 하드웨어 인터럽트 요청 신호를 보내면 CPU는 하던 일을 잠시 백업한 뒤 커널 영역에 있는 인터럽트 서비스 루틴 실행

 

파일 시스템 관리

- 컴퓨터를 사용할때 파일을 열고, 생성하고, 삭제하곤 함

- 이 파일들은 한데 묶어 디렉터리(폴더)로 관리함

- 이러한 파일 시스템도 운영체제가 지원하는 핵심 서비스임

 

추가로!!

 

출처 : Chapter 1. First Steps - Virtualbox

 

- 가상머신이란 이름 그대로 소프트웨어적으로 만들어낸 가상 컴퓨터

- 가상머신을 설치하면 새로운 운영체제와 응용 프로그램 설치가능o

 

 

'공부 기록일지' 카테고리의 다른 글

유성이의 공부일지(11) - 혼자공부하는 컴퓨터 구조 + 운영체제 11장  (0) 2024.07.11
유성이의 공부일지(10) - 혼자공부하는 컴퓨터 구조 + 운영체제 10장  (0) 2024.07.10
유성이의 공부일지(8) - 혼자공부하는 컴퓨터 구조 + 운영체제 8장  (1) 2024.07.09
유성이의 공부일지(7) - 혼자공부하는 컴퓨터 구조 + 운영체제 7장  (0) 2024.07.07
유성이의 공부일지(6) - 혼자공부하는 컴퓨터 구조 + 운영체제 6장  (0) 2024.07.06
'공부 기록일지' 카테고리의 다른 글
  • 유성이의 공부일지(11) - 혼자공부하는 컴퓨터 구조 + 운영체제 11장
  • 유성이의 공부일지(10) - 혼자공부하는 컴퓨터 구조 + 운영체제 10장
  • 유성이의 공부일지(8) - 혼자공부하는 컴퓨터 구조 + 운영체제 8장
  • 유성이의 공부일지(7) - 혼자공부하는 컴퓨터 구조 + 운영체제 7장
메테오유성
메테오유성
유성이가 하고 싶은 이야기를 올리는 일기장
  • 메테오유성
    유성의 이것저것
    메테오유성
  • 전체
    오늘
    어제
    • 분류 전체보기 (32)
      • IT 이야기 (3)
      • 공부 기록일지 (19)
      • 책 기록일지 (0)
      • UX 리서치 연구일지 (9)
      • 알고리즘 문제 풀이 (0)
      • HCI Research (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    심미적 사용성 효과
    kneighbors()
    대기 큐
    apple
    rr 스케줄링
    ferret-ui
    여정 지도
    폰 레스토프 효과
    Google
    메일 침프
    도허티의 임계
    WWDC
    스레드
    자동인지 처리
    디자인 회복 탄성력
    배너 무시
    샘플 레이아웃 패턴
    테스트 세트
    train_test_split()
    타조 알고리즘
    교착 상태 예방
    변화 무시
    유비쿼스트 결제 프로세스
    포스텔의 법칙
    테슬러의 법칙
    디자인 작업 프로세스
    선택적 주의력
    운영체제
    it
    우선순위 스케줄링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
메테오유성
유성이의 공부일지(9) - 혼자공부하는 컴퓨터 구조 + 운영체제 9장
상단으로

티스토리툴바