[OS] What is OS?

JEEWOO SUL·2021년 11월 4일
1

📂 기타

목록 보기
5/11
post-thumbnail

운영체제는 HW가 SW와 통신하고 작동하도록 하는 SW이다. 하드웨어를 관리할 뿐만 아니라 응용 프로그램이 실행되기 위한 환경을 제공한다. 예를 들어, OS가 수행하는 일 중 하나는 컴퓨터 시스템을 사용하기 위한 인터페이스이다.

운영체제의 역할

  1. OS는 컴퓨터 시스템의 정확한 동작을 보장해야 한다. 사용자 프로그램이 시스템의 정상적인 동작을 방해하는 것을 막기 위해, HW는 커널모드와 사용자모드를 갖는다.
  2. OS는 메모리 공간의 동적 할당 및 반환을 책임진다.
  3. OS는 사용자를 보호하고 보안을 유지해야 한다.

커널

커널은 메모리에 상주하는 운영체제의 일부분으로 운영체제의 핵심적인 부분을 의미한다. 운영체제처럼 규모가 큰 프로그램이 전원이 켜질 때마다 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할 것이기 때문에 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 load해서 사용한다.

Main memory

컴퓨터가 프로그램을 수행하려면 프로그램이 주 메모리에 있어야 한다. 주 메모리는 처리기가 직접 접근할 수 있는 유일한 대량 저장 장치이다. 주 메모리는 수백만에서 수십억까지의 크기를 가지는 바이트 배열이다. 각 바이트는 자신의 주소를 가지고 있다.

CPU (Control Process Unit)


CPU 내부에는 ALU, Control Unit, Bus Interface, Register로 구성되어 있다.

  • ALU : CPU 내부에서 실행되는 연산을 담당 (산술 논리 연산)
  • Control Unit : CPU가 처리해야 할 명령어를 해석하고 그에 맞는 신호를 발생함
  • Bus Interface : 컴퓨터 HW간의 데이터를 주고 받는 통로
    • Address Bus : 주소 전송 (CPU → RAM)
    • Data Bus : 데이터 전송 (CPU → RAM)
    • Control Bus : 제어 신호 전송 (CPU ↔ RAM)
  • Register : CPU 내부의 작은 메모리 공간으로 CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 메모리 공간. CPU 내부 레지스터에는 MAR(Memroy Address Register), MBR(Memory Buffer Register) 등이 있다.

⭐⭐⭐ 컴퓨터 부팅 과정 ⭐⭐⭐


1. 컴퓨터의 전원이 들어온다. (On)
2. CPU에선 메모리의 0번지 주소를 읽는다. 메모리 0번지에는 ROM이라는, 컴퓨터를 구동하기 위한 기본 정보가 담긴 메모리가 있다. (ROM은 비휘발성 메모리이다)
3. ROM에서 읽어들인 내용을 바탕으로 하드웨어 상태를 확인한다. (POST - Power On Self Test 수행)
4. OS를 로드하기 위해 Disk의 첫번째 섹터인 MBS(Master Boot Record)를 읽는다. 이 MBR에서 부트 코드(Boot code)가 실행된다.
5. 부트 코드는 부팅 가능한 파티션을 찾아 해당 파티션의 부트 레코드를 호출하고, 해당 파티션 부트 레코드는 RAM에 적재하여 실행한다.
6. 해당 파티션으로 부팅이 시작된다.

이제 OS에서 응용 프로그램을 실행할 수 있는 환경이 되었다!

프로그램의 실행

사용자에 의해 프로그램이 실행되면, 프로그램을 구성하는 명령어와 데이터가 OS에 의해 RAM에 적재된다. 프로그램이 메모리에 적재되면, 해당 프로세스의 주소값이 낮은 곳부터 메모리를 읽어 그곳에 있는 명령어를 수행한다. 명령어를 수행하는 과정은 fetch와 execution으로 구성된다.

Fetch : 수행할 명령을 가지고 온 뒤, 명령을 해석한다
Execution : 명령에 필요한 데이터를 가져오고 명령을 실행한다.

이 게시물은 cocoJelly의 게시물을 참조하였습니다.

profile
느리지만 확실하게 🐢

0개의 댓글