하드웨어란 ?
- 소프트웨어(운영체제와 프로그램)가 동작할 수 있도록 설계된 장치들
소프트웨어란 ?
- 하드웨어를 제어하고, 사용자가 원하는 기능을 구현하는 프로그램

운영체제란?
- 하드웨어와 소프트웨어 사이에서 중개자 역할

운영체제의 실행(부팅과정)
- 메인보드 전원 버튼을 누른다.
- BIOS 또는 UEFI가 실행된다.
- BIOS, UEFI란 : 컴퓨터 전원을 켰을 때 제일 먼저 실행되는 프로그램이야.
- CPU, 메모리, 하드디스크 같은 하드웨어가 정상인지 검사하고
- 운영체제(Windows, macOS, Linux...)를 불러오는 준비를 한다.
- 하드웨어 초기화 및 점검(POST), 하드웨어 작동 준비 상태로 만듬
- Power-On Self Test
- CPU, RAM, 그래픽카드, 키보드 같은 기본 장치들이 제대로 연결됐는지 확인
- 부트 장치 탐색 및 부트로더 실행
- 하드디스크, SSD, USB 중에서 부팅 가능한 장치를 찾음
- 거기서 부트로더(bootloader) 라는 프로그램을 실행
- 부트로더가 OS 커널을 메모리에 올려 놓고 실행시킴
- 커널 초기화
- 커널이란 ?
- 하드웨어를 직접 제어해주는 프로그램
- 메모리, CPU, 파일, 네트워크 이런 걸 모두 관리
- 사용자가 프로그램을 실행하면, 커널이 "얘한테 CPU 쓸 기회를 줄까?", "메모리 얼마 줄까?" 다 결정함
- 커널 = "운영체제의 두뇌"
- 이제 하드웨어 제어를 완전히 OS(커널)가 담당
- 메모리 / 파일시스템 / 프로세스 관리 등 시작
- 커널이란 ?
- 사용자 영역 프로세스 실행(커널 -> init 프로세스 실행)
- 시스템 서비스 시작(네트워크, 보안 서비스 등)
- 파일 시스템 마운트
- 로그인 시스템 준비
- GUI 시작
프로그램 실행 동작 원리
- 사용자가 프로그램(카카오톡 응용 소프트웨어)을 실행한다.
- OS가 프로그램을 메모리에 적재(Load)시킴
- 이 과정에서 프로그램이 동작되는 순간 프로그램은 "프로세스"로 변환된다.
- OS(커널)는 실행 파일의 헤더(메타정보)를 읽고,
- 코드(텍스트 섹션)는 코드 영역에,
- 초기화된 데이터는 데이터 영역에,
- 초기화되지 않은 데이터는 BBS 영역에 적절히 배치하고,
- 힙과 스택은 추가로 따로 할당한다.
- OS가 새롭게 생성된 프로세스(프로그램)를 스케줄링함
- 스케줄링이란 ?
- CPU를 여러 프로그램(프로세스)한테 번갈아가면서 공평하게 나눠주는 역할
- 컴퓨터는 보통 수백 개 프로그램이 동시에 돌아감 (카톡, 크롬, 음악 앱 등)
- 하지만 CPU는 동시에 몇 개밖에 못돌아감
- 그래서 커널이 "이번엔 카톡 실행", "다음은 크롬 실행" 이렇게 순서를 정해주는 것이 스케줄링이라 한다.
- 스케줄링이란 ?
- 그 후 프로세스가 종료되면 메모리에서 해제됨
하드웨어의 종류
1. CPU란?
- CPU는 Central Processing Unit(중앙처리장치)의 약자예요. 컴퓨터에서 모든 계산과 명령 처리를 담당하며, 데이터를 조작하고 결과를 출력하는 컴퓨터의 두뇌라고 할 수 있어요. 우리가 사용하는 모든 프로그램은 CPU가 열심히 계산하고 작업을 처리해서 작동하는 거랍니다. 🧠✨
※ CPU의 구성 요소
- 산술 논리 장치(ALU) : ALU는 Arithmetic Logic Unit, 즉 산술 논리 장치로, 숫자를 계산하거나 데이터를 비교하는 일
- 제어 장치(CU) : CPU의 지휘관으로써 프로그램 명령어를 해석하고, 어떤 작업을 할지 ALU와 메모리에 지시합니다.
- 레지스터(Register) : CPU 내부에 있는 초고속 메모리로 산에 필요한 데이터를 잠깐 저장하거나 연산 결과를 임시로 보관하는 역할을 합니다.
2. 메모리란(RAM)?
- RAM(Random Access Memory)은 컴퓨터에서 임시로 데이터를 저장하고 빠르게 접근할 수 있는 기억 장치예요.
- RAM은 흔히 주기억 장치라고 불리며, 컴퓨터가 작업을 수행할 때 필요한 데이터를 저장하고 빠르게 꺼내 쓰는 역할을 해요.
하지만 컴퓨터가 꺼지면 RAM에 저장된 데이터는 모두 사라지기 때문에, ‘휘발성 메모리’라고도 불립니다.
※ RAM은 컴퓨터에서 현재 작업 중인 데이터와 실행 중인 프로그램의 내용을 저장합니다. RAM이 없다면, 컴퓨터는 매번 데이터를 하드디스크에서 가져와야 해서 속도가 엄청 느려집니다.
- 프로그램 실행 : 프로그램이 실행될 때, 프로그램의 파일이 하드디스크에서 RAM으로 로드됩니다.
RAM은 CPU가 빠르게 데이터를 가져가고 작업할 수 있도록 돕습니다. - 데이터 처리 : 문서를 작성할 때 텍스트와 스타일 같은 정보가 RAM에 저장되고, CPU는 이를 빠르게 처리해 화면에 보여줍니다.
- 렘의 종류 : DRAM과 SRAM으로 나뉜다.
- DRAM
- 저렴하고 대용량으로 사용할 수 있어요.
- 데이터를 유지하려면 주기적으로 새로고침(refresh)이 필요합니다.
- SRAM
- DRAM보다 빠르고, 새로고침 없이 데이터를 유지할 수 있으며 가격이 비쌈
- DRAM
3. 저장 장치(SSD와 HDD)
- 저장 장치는 컴퓨터에서 데이터를 영구적(보조기억장치)으로 저장하는 하드웨어입니다.
4. 입출력 장치(I/O Devices)
- 입출력 장치(I/O Devices)는 컴퓨터와 외부 세계(사용자, 다른 컴퓨터 등) 간의 데이터 전송을 담당하는 장치입니다.
'CS > 운영체제' 카테고리의 다른 글
| 프로세스 메모리 구조 (1) | 2025.05.29 |
|---|---|
| 프로그램 컴파일 과정 (0) | 2025.05.29 |
| 가상메모리, 페이지테이블, 페이지폴트, 스레싱 (0) | 2025.05.28 |
| 인터럽트 (1) | 2025.05.27 |
| 운영체제와 컴퓨터 시스템의 구조 (0) | 2025.05.27 |