Frinee의 코드저장소

운영체제와 컴퓨터

by Frinee
운영체제(OS, Operating System)
컴퓨터 시스템의 하드웨어와 소프트웨어를 관리하고 사용자와 컴퓨터 간의 상호작용을 가능하게 하는 소프트웨어


펌웨어 (Firmware)
: 하드웨어 장치의 동작을 제어하기 위해 하드웨어 내부에 설치된 소프트웨어, 하드웨어와 소프트웨어의 중간 역할을 하며 하드웨어의 특정 기능을 제어하거나 명령을 수행하게 만든다.

 

 

 

 

1. 운영체제의 역할

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

 

 

2. 운영체제의 구조

운영체제의 구조

GUI (Graphical User Interface)
:
사용자가 전자장치와 상호작용할 수 있도록 하는 사용자 인터페이스의 한 형태, 단순 명령어 창이 아닌 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호 작용할 수 있도록 한다.

CUI (Character User Interface)
:
문자를 사용해 사용자와 컴퓨터가 상호작용하는 인터페이스, 명령어를 포함하여 메뉴, 텍스트 기반 인터페이스를 포함하는 개념이다. 명령어만으로 상호작용하는 인터페이스를 CLI(Command Line Interface)라 한다.

드라이버
: 하드웨어를 제어하기 위한 소프트웨어

 

 

 

3. 시스템 콜 (System Call)

  • 응용 프로그램이 운영체제의 커널 기능을 사용할 수 있도록 도와주는 인터페이스
  • 애플리케이션이 직접 하드웨어 자원에 접근할 수 없기 때문에 시스템 콜을 통해 커널에 요청을 전달하여 커널이 해당 작업을 수행하게 된다.
  • 이 과정을 통해 컴퓨터 자원에 대한 직접 접근을 차단할 수 있고 프로그램을 보호할 수 있다.

 

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

 

 

  발생과정

  1. 사용자 모드(User mode): 응용 프로그램이 실행되다가 운영체제의 기능이 필요할 때 시스템 콜을 호출한다. (ex. 파일 읽기 기능)
  2. 모드 전환: 시스템 콜이 호출되면 CPU는 사용자 모드에서 커널 모드로 전환된다.
  3. 커널 처리: 커널 모드로 전환된 후, 운영체제가 직접 시스템 콜을 처리한다. 파일을 읽고 프로세스를 생성하는 등의 작업이 이뤄지는 곳이다.
  4. 결과 반환 및 모드 전환: 커널이 요청된 작업을 처리하고 결과를 반환하면 CPU는 다시 커널 모드에서 사용자 모드로 전환되고, 프로그램은 시스템 콜의 결과를 받아 다음 작업을 이어간다.

유저 모드 (User mode)
:
일반 애플리케이션이 실행되는 모드로, 제한된 권한을 갖고 있고 컴퓨터 자원에 직접 접근할 수 없다.

커널 모드 (Kernel mode)
운영체제의 핵심 부분인 커널이 실행되는 모드로, 시스템의 모든 자원에 대한 접근 권한을 가진다.

mode bit
: 1 (유저 모드) 또는 0 (커널 모드)의 값을 가진 플래그 변수,  유저 모드와 커널 모드를 구분하는 역할

 

 

 

4. 컴퓨터의 기능적 요소

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

  1. CPU (Central Processing Unit)
    1. I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
    2. CPU 부하를 막아주며 데이터 전송 속도를 높여 성능을 향상한다.
  2. DMA 컨트롤러
    1. I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
    2. CPU 부하를 막아주며 데이터 전송 속도를 높여 성능을 향상한다.
  3. 메모리
    1. 전자회로에서 데이터나 상태, 명령어 등을 기록하여 저장하는 장치
    2. 보통 RAM (Random Access Memory)를 메모리라 한다.
  4. 타이머
    1. 시스템의 시간 관리를 담당하며 주기적인 작업을 스케줄링한다.
    2. 운영체제가 프로세스의 시간 할당을 조정하고 이벤트 발생을 관리하는 데 사용된다.
  5. 디바이스 컨트롤러
    1. 주변 장치와 CPU 간의 데이터 통신을 관리하는 장치로, 각 장치의 특성에 맞게 명령을 처리한다.
    2. 그래픽카드 컨트롤러, 네트워크 카드 컨트롤러 등이 존재한다.

 

 

5. CPU (Central Processing Unit)

  • 산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치
  • 모든 데이터 처리와 연산을 수행하며 명령어를 해석하고 실행한다.
  1. 제어장치 (Control Unit)
    1. 프로세스 조작을 지시하는 부품
    2. 입출력장치 간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정
  2. 레지스터 (Register)
    1. CPU 안에 있는 매우 빠른 임시기억장치
    2. CPU와 직접 연결되어 있어 연산속도가 메모리보다 수십 ~ 수백 배 빠르다.
    3. CPU가 데이터를 저장할 때, 항상 레지스터를 거쳐 데이터를 전달한다.
  3. 산술논리연산장치 (ALU, Arithmetic Logic Unit)
    1. 덧셈, 뺄셈 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱(XOR, AND, OR 등) 같은 논리 연산을 계산하는 디지털 회로

 

 

  CPU 연산처리 과정

CPU 연산처리 과정

  1. 명령어 인출 (Fetch): 제어장치가 메모리에서 실행할 명령어를 가져온다.
  2. 명령어 해석 (Decode): 제어장치가 명령어를 해석하여 필요한 레지스터와 메모리 주소를 파악한다. 이후 ALU에게  명령한다.
  3. 연산 수행 (Execute): 산술논리연산장치에서 연산을 실행하여 누산기(Accumulator)나 다른 레지스터에 저장한다.
  4. 결과 저장 (Store): 제어장치가 연산 결과를 레지스터에서 메모리의 지정된 주소로 저장한다.
  5. 인터럽트 처리 (Optional): 어떤 신호가 들어왔을 때, CPU의 연산을 잠깐 정지시키는 것을 말한다. 처리가 완료되면 다시 원래 작업으로 복귀한다. 
    1. 하드웨어 인터럽트: 키보드나 마우스 등의 IO 디바이스에서 발생하는 인터럽트
    2. 소프트웨어 인터럽트: 트랩(Trap)이라고 하며, 프로세스 오류 등으로 프로세스가 시스템콜을 호출할 때 발동한다.

 

 

블로그의 정보

프리니의 코드저장소

Frinee

활동하기