본문 바로가기
백엔드/Computer Science(CS)

[스터디]운영체제 #1

by 수박통통 2023. 1. 6.

프로그램이란? 

컴퓨터 하드웨어에게 일을 하도록 말하는 일종의 명령어 집합

 

운영체제란?

  • 컴퓨터에서 항상 동작하는 프로그램
  • 시스템서비스를 어플리케이션 프로그램에게 제공 (OS가 어플리케이션에게 말하길... : 나에게 다 말해!! 내가 해줄게!!)
  • 프로세스 관리, 자원 관리, 유저 인터페이스 관리 등의 역할을 함
  • 컴퓨터 시스템을 운영하는 소프트웨어
  • 하드웨어를 제어하는 소프트웨어

 

커널이란?

  • 하드웨어의 자원을 자원이 필요한 프로세스에 나눠주고, 덩달아 프로세스 제어(작업 관리), 메모리 제어, 프로그램이 운영 체제에 요구하는 시스템 콜 등을 수행하는 부분으로 운영 체제 맨 하부에서 돌아간다 (by 나무위키)
  • 시스템 프로그램과 애플리케이션 프로그램의 인터페이스 제공 -> 즉, 커널이 핵심

부트스트랩이란?

컴퓨터가 파워온되면 CPU는 롬(메인 메모리에 포함되어 있으며 비휘발성 메모리)을 제일 처음 불러오게 된다. 롬에서 부트스트랩 로더라는 코드를 가장 먼저 실행시키게 되는데, 이 코드가 실행되면 OS가 실행된다. 
파워온되면 운영체제 로딩, 하드디스크에 있는 운영체제프로그램을 메모리에 로딩하는(커널을!)

 

인터럽트란?

  • A를 눌렀으면 A를 눌렀다는 걸 cpu가 알아야한다. 여기서 알려주는 것을 인터럽트라고 한다. cpu와 i/o디바이스가 통신하는 방법 중 하나가 인터럽트다.
  • CPU에게 시그널을 보내기 위해 하드웨어는 언제든 인터럽트를 트리거한다.

폰 노이만 아키텍처

명령어집합(인터럭션 셋)을 메모리에 로딩 -> 메모리에 있는 명령어들을 cpu가 fetch -> execute
↑명령어 레지스터(IR)

저장공간

용량, 엑세스타임에 따라서 계층구조를 갖는다.

레지스터
캐시 - 비싸고 작다
메인메모리 - ex.램
하드디스크 - SSD(메모리형태의 하드디스크), HDD 하드디스크
optical disk
magnetic tapes(백업과 같은 것에 주로 사용)

 

 

 

 

 

 

 

멀티코어 : 메모리는 한 개, But cpu가 여러 개
멀티코어 디자인  : cpu하나 안에 코어(레지스터랑 캐시)만 여러개
멀티프로세서 : 멀티코어 디자인이 여러개인 것

 

멀티프로그래밍이란?

  • 여러개의 프로그램을 동시에 메모리에 올려넣고 동시에 실행시키면 굳이 하나하나?!
  • 하나의 프로그램이 한번에 동시에 한 개 이상이 돌고 있는것
  • 여러개의 프로세스가 동시에 메모리에 올라가있는것
  • cpu사용효율 ↑
  • 멀티타스킹과 같은 말

 

타임쉐어링 

  • 여러 개의 프로그램을 여러번 계속 바꿔주기! (동시성과 병렬성의 개념이 여기서)
  • cpu스케쥴링
  • cpu효율을 높이는 방법을 선택

오퍼레이션 모드

  • 유저모드
  • 커널모드 


사용자가 이상한 프로그램하지 않도록 막아주는 것도 운영체제의 몫이다. 따라서 커널모드에서만 직접적으로 하드웨어 제어 가능하며 유저모드에서 시스템콜을 할 시에만 커널모드로 넘어감(커널에서 시스템콜 처리). 



가상화기술 

  • 운영체제를 여러개 쓰는 것
  • 하드웨어와 os사이에 VMM(virtual machine manager)
  • os스케쥴링을 하자


시스템콜이란?

  • OS에 인터페이스하기 위한 방법
  • OS의 서비스들을 시스템콜을 통해 연결 -> 즉, API
  • OS API 가 시스템콜이라고 보면 됨 (read,write 등등)
  • 대부분은 라이브러리들을 제공(여기서는 C)
  • 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스(by 위키)

 

 

 

생각해봤던 질문

더보기


컴퓨터가 파워온되면 젤 먼저하는 일은?(운영체제와 관련해 설명)
-> 롬에 있는 부트스트랩 로더를 실행해 OS를 실행시킵니다

커널이란?
-> 메모리에 상주하는 운영체제의 핵심부분(즉,운영체제 중 항상 필요한 부분) / 메모리관리, 프로세스 관리, 자원 관리 등의 역할을 함

시스템콜이란?
-> 유저모드와 커널모드(이 두 개모드를 듀얼모드라고 함)의 인터페이스. 유저모드에서 관리할 수 없는 부분은 반드시 커널모드를 거쳐야하는데, 그러한 커널모드로 전환하기 위한 것
-> 유형에는 프로세스 컨트롤, 파일 매니지먼트, 디바이스 매니지먼트, 정보 관리, 보안, 커뮤니케이션이 존재
-> 서로 다른 시스템 콜 구분? 모르겠음

메모리구조?
-> 코드영역, 데이터 영역, 힙영역, 스택 영역이 존재

인터럽트란?
-> A를 눌렀으면 A를 눌렀다는 것을 CPU가 알아야하는데, 여기서 알려주는 것을 인터럽트라고 함. 즉, CPU와 통신하는 방법 중 하나가 인터럽트. CPU에게 시그널을 보내기 위해 하드웨어는 언제든 인터럽트를 트리거한다.

운영체제란?
-> 응용프로그램과 하드웨어 사이를 인터페이스, 즉 연결하는 시스템 소프트웨어


운영체제의 역할은?
-> 프로세스관리, 저장장치 관리, 네트워킹, 사용자 관리, 디바이스 드라이버 등
-> 컴퓨터 시스템의 계산 활동을 관리하여 컴퓨터 시스템이 제대로 작동하도록 한다. 프로그램 개발 및 실행을 위한 환경을 제공한다.

 

참고 

https://www.inflearn.com/course/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EA%B3%B5%EB%A3%A1%EC%B1%85-%EC%A0%84%EA%B3%B5%EA%B0%95%EC%9D%98

 

[무료] 운영체제 공룡책 강의 - 인프런 | 강의

운영체제의 기본 원리를 튼튼히 이해해야만 고급 프로그래밍 기술을 이해할 수 있습니다. 본 강의는 운영체제의 바이블이라 할 수 있는 공룡책에 대한 전공자 수준의 강의입니다., - 강의 소개 |

www.inflearn.com

 

'백엔드 > Computer Science(CS)' 카테고리의 다른 글

[스터디] 운영체제 #6  (0) 2023.02.12
[스터디] 운영체제 #5  (0) 2023.02.03
[스터디] 운영체제 #4  (0) 2023.01.27
[스터디]운영체제 #3  (0) 2023.01.20
[스터디]운영체제 #2  (0) 2023.01.13