CS_운영체제.1 운영체제와 컴퓨터

김창민·2024년 7월 18일

cs

목록 보기
1/10
post-thumbnail

운영체제 : 사용자가 컴퓨터를 쉽게 사용할 수 있게 도와주는 인터페이스
펌웨어 : 운영체제와 비슷하나 소프트웨어 추가 설치 불가능


운영체제의 역할

  1. CPU 스케줄링 및 프로세스 관리 : CPU의 소유권을 어떤 프로세스에 할당할지 결정하고, 프로세스의 생성과 삭제, 지원 할당 및 반환을 관리
  2. 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당할지 결정
  3. 디스크 파일 관리 : 디스크 파일을 어떤 방법으로 보관할지 결정
  4. IO 디바이스 관리 : 마우스, 키보드 등과 컴퓨터 간 데이터를 주고받는 걸 관리

운영체제의 구조

기본적으로 OS는 유저프로그램과 하드웨어 중간에 위치함
유저 프로그램 |GUI/CUI - 시스템 콜 - 커널 - 드라이버|하드웨어

GUI/CLI

그래픽 UI, Command Line Interface
이 부분은 사용자가 아이콘을 클릭하거나 명령어를 입력하는 동작을 통해 컴퓨터와 상호작용할수 있게 해주는 인터페이스다.

시스템 콜

운영체제가 커널 기능을 유저 프로그램에 제공하기 위한 인터페이스

  • 유저 프로그램이 I/O요청으로 trap(소프트웨어 인터럽트)을 발동하면 올바른 I/O인지 확인 후 유저모드가 시스템콜을 통해 커널 모드로 바뀌면서 실행된다.
  • I/O 요청인 fs.readFile()을 사용하려는 상태임. 유저 프로그램이 해당 메소드를 실행->trap발동 -> 시스템 콜이 올바른 I/O인지 확인 -> 유저 프로그램을 유저 모드에서 커널 모드로 변환 -> 파일 읽음 -> 유저 프로그램을 유저 모드로 변환 -> 유저 프로그램의 로직 수행

  • 시스템 콜을 통해서 유저 프로그램이 직접 컴퓨터 자원에 접근하는걸 막을 수 있음

또한 프로세스, 스레드가 운영체제로 어떤 요청을 할 경우 시스템 콜 -> 커널을 거쳐서 운영체제에 전달된다.

시스템콜은 추상화 계층이기 때문에 네트워크 통신, 데이터베이스와 같은 low level의 영역 처리에 대한 부분은 많이 신경쓰지 않고 프로그램을 구현할 수 있음

Q. 왜 컴퓨터 자원을 커널 모드에서 사용해야함?
A.유저 모드에서 바로 컴퓨터 자원에 접근이 가능하면 IO 디바이스가 외부에서 조작되어 위험한 상황이 발생할 수 있음. 그래서 컴퓨터 자원은 커널 모드로 접근해야한다는 최소한의 안전장치를 마련한 것.

Q. 이게 user mode인지 kernel mode인지 어떻게 앎?
A. modebit를 이용해서 0이면 kernel, 1이면 user로 설정해서 파악함

커널

운영체제의 핵심, 시스템콜 인터페이스를 제공하며 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적 역할을 함

드라이버

하드웨어를 제어하는 소프트웨어다.


컴퓨터의 요소

CPU, DMA컨트롤러,메모리, 타이머, 디바이스 컨트롤러 등..

CPU (Central Processing Unit)

인터럽트에 의해서 단순히 메모리에 존재하는 명령어를 해석해서 실행하는 부품

인터럽트 : 어떤 신호에 의해 CPU를 잠깐 Pause 하는 것.
소프트웨어 인터럽트 : trap이라고 하며, 프로세스 오류 등으로 프로세스가 시스템콜을 호출할 때 발동
하드웨어 인터럽트 : IO디바이스가 PC에 연결될때 발동

동작 : 커널이 프로그램을 메모리에 올려서 프로세스화 하면 CPU가 그걸 처리함

구성 : 산술논리연산장치, 제어장치, 레지스터

  • 산술논리연산장치 ALU : 덧셈, 뺄셈 같은 두 숫자의 산술 연산과 배타적 논리합, 곱 같은 논리 연산을 계산하는 디지털 회로

  • 제어장치 CU : 프로세스 조작을 지시하는 부품
    입출력 장치간 통신을 제어하고, 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 정함

  • 레지스터 : 매우 빠른 임시기억장치
    CPU와 직접 연결되어있어서 연산속도가 메모리의 수백배. CPU는 자체적으로 데이터 저장이 불가능해서 레지스터를 통해서 데이터를 전달함

메모리

데이터나 상태, 명령어를 기억하는 장치
보통 RAM을 메모리라고 함
CPU가 연산만 담당하고 메모리는 저장만 담당함

DMA 컨트롤러

IO 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
모든 인터럽트 신호가 CPU로 들어가기 때문에 CPU의 부하를 방지하고자 사용
CPU와 DMA 컨트롤러가 동시에 같은 작업을 수행할 순 없음

타이머

작업 시간에 제한을 거는 역할을 함
시간이 많이 걸리는 프로그램이 작동할 때 제한을 걸기위해 존재

디바이스 컨트롤러

컴퓨터와 연결된 IO 디바이스의 작은 CPU

profile
일일 회고 : https://rlackdals981010.github.io/

0개의 댓글