운영체제 & 컴퓨터

d·2023년 4월 12일
0
post-thumbnail

운영체제

운영체제의 역할

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

운영체제는 UI, 시스템콜, 커널, 드라이버로 이루어져있다.

https://velog.velcdn.com/images/whwogur/post/1e9a7f98-a8b8-4627-9076-39bfd255afce/image.png

커널

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

시스템콜

운영체제가 커널에 접근하기 위한 인터페이스이며 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 쓴다. 유저 프로그램이 트랩(trap - 소프트웨어 인터럽트)을 발동하면 올바른 요청인지 확인한 후, 유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행된다. 이 때 modebit 이라는 플래그 변수를 이용해 유저 모드에서 파일을 읽지 않고 커널 모드로 들어가 파일을 읽고 다시 유저 모드로 돌아가 그 뒤에 있는 유저 프로그램의 로직을 수행한다. 이를 통해 컴퓨터 자원에 대한 직접적인 접근을 차단하고 프로그램을 독립적으로 유지할 수 있다.
malloc-lab에서 봤던 것 처럼 프로세스나 스레드에서 운영체제로 어떠한 요청을 할 때 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달이 된다.


컴퓨터

컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어져 있다.

CPU(Central Processing Unit)

CPU(Central Processing Unit)는 산술논리연산장치, 제어장치, 레지스터로 구성되어있는 컴퓨터 장치를 말하며, 메모리에 존재하는 명령어를 인터럽트 에 의해 해석해서 실행한다.

  • 제어장치(CU, Control Unit) : 프로세스 조작을 지시하는 CPU의 구성품, 입출력장치 간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정한다.
  • 레지스터(Register) : CPU안에 있는 매우 빠른 임시기억장치, CPU와 직접 연결되어 있으므로 연산 속도가 메모리보다 수십 배에서 수백배 까지 빠르다. CPU에서 자체적으로 데이터를 저장할 방법이 없기 때문에 레지스터를 거쳐서 데이터를 전달한다.
  • 산술논리연산장치(ALU, Arithmetic Logic Unit) : 덧셈, 뺄셈 같은 산술 연산과 배타적 논리합, 논리곱 같은 논리 연산을 계산하는 디지털 회로다.
  • 인터럽트 : 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것을 말한다. 입출력 장치에 의한 인터럽트, 0으로 숫자를 나누는 산술 연산(division by zero)에서의 인터럽트, 프로세스 오류 등으로 발생한다. 인터럽트가 발생하면 인터럽트 핸들러 함수가 실행된다. 인터럽트 간에는 우선순위가 있어 우선순위에 따라 실행된다.
    • 하드웨어 인터럽트 : 키보드, 마우스 등을 연결했을 때 같이 I/O 디바이스에서 발생하는 인터럽트.
    • 소프트웨어 인터럽트 : 프로세스 오류 등으로 프로세스가 시스템콜을 호출할 때 발생한다.

DMA(Direct Memory Access)컨트롤러

I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치다. 메모리 버퍼, 포인터, 카운터를 사용하여 장치 제어기가 CPU의 도움없이 데이터를 직접 메모리로 전송할 수 있도록 한다. CPU에 들어오는 인터럽트 요청으로 인한 부하를 막아줘 시스템의 효율을 증가시켜준다.

메모리

데이터나 상태, 명령어 등을 기록하는 장치를 말하며, 보통 RAM(Random Access Memory)을 일컬어 메모리라고도 한다. CPU는 연산을 하고 동작에 필요한 모든 내용이 전원이 유지되는 내내 이 기억장치에 저장된다. 부엌에 비유하면 CPU는 요리사, 메모리는 아일랜드 식탁..? 식탁이 클수록 재료를 많이 가져다놓고 많은 일을 할 수 있듯, 메모리가 크면 많은 일을 할수있다.

타이머

  • 몇 초 안에 작업이 끝나야 한다는 것을 정하고 특정 프로그램에 시간 제한을 다는 역할을 한다.
  • 시간이 많이 빠리는 프로그램이 작동할 때 제한을 걸기 위해 존재한다.
  • 타이머는 지정된 시간 후 인터럽트를 발생시키도록 설정할 수 있다.

0개의 댓글