본문 바로가기

728x90

CS

(15)
[컴퓨터 구조] 데이터 부동 소수점 소수란?소수(decimal)는 1보다 큰 정수 중에서 1과 자기 자신만을 약수로 가지는 자연수를 뜻합니다. 예를 들어, 2, 3, 5, 7과 같은 숫자가 소수입니다.프로그래밍에서 소수 연산을 다룰 때 일반적인 개념과 달리 컴퓨터의 소수점 표현 방식의 한계로 인해 일부 오차가 발생할 수 있습니다. 소수 표현일부 실수 계산에서 우리가 흔히 예상하는 결과와 컴퓨터가 계산하는 결과가 달라질 수 있습니다. 예를 들어 0.1 + 0.2의 계산 결과는 이론적으로 0.3이지만, 컴퓨터는 이 결과를 정확히 표현하지 못할 때가 있습니다:System.out.println(0.1 + 0.2 == 0.3); // 결과는 false이와 같은 현상은 컴퓨터가 소수를 표현하는 방식인 "부동 소수점" 표현 방식의 한계로 인해 발생합니..
[컴퓨터 구조] CPU 속도에 관여하는 것 CPU의 속도에 영향을 미치는 요소CPU는 명령어를 처리하는 부품이며, 명령어 처리 속도가 빠를수록 컴퓨터의 성능이 향상됩니다. CPU의 명령어 처리 속도를 빠르게 할 수 있는 방법은 다음과 같습니다. 1. 클럭 (Clock)클럭의 정의: 컴퓨터 부품은 클럭이라는 신호에 맞춰 작동합니다. 클럭 신호는 컴퓨터의 동작을 제어하는 타이밍 신호로, 신호가 올 때마다 CPU가 작업을 시작합니다.클럭 속도: 클럭 속도는 Hz(헤르츠)로 측정되며, 1초에 n번 신호를 반복한다면 nHz입니다. 예를 들어, 1초에 10번 신호가 오면 10Hz입니다. 일반적인 CPU의 속도는 다음과 같습니다:저가형 CPU: 약 2.5GHz ~ 3.5GHz중급형 CPU: 약 3.5GHz ~ 4.5GHz고급형 CPU: 약 4.0GHz ~ 5..
[OS] 동기화 기법 뮤텍스 락, 세마포 동기화의 중요성: 레이스 컨디션과 임계 구역공유 자원이란?프로세스나 스레드가 공유하는 자원을 공유 자원(shared resource)이라고 합니다. 공유 자원은 메모리, 파일, 전역 변수, 입출력 장치 등 다양합니다.여러 프로세스나 스레드가 동시에 동일한 공유 자원에 접근할 경우, 예기치 않은 문제가 발생할 수 있습니다.  레이스 컨디션 문제다음은 두 개의 스레드가 count라는 공유 변수를 각각 100번씩 증가시키는 예제입니다.public class RaceConditionExample { static int count = 0; // 공유 변수 public static void main(String[] args) { Thread t1 = new Thread(new Counter(..
[OS] PCB, 문맥 교환(Context Switching) 운영체제와 프로세스 제어 블록(PCB)운영체제가 메모리에 적재된 여러 프로세스를 관리하기 위해서는 프로세스를 식별할 수 있는 커널 영역의 정보가 필요합니다. 이러한 정보를 프로세스 제어 블록(Process Control Block, PCB)이라고 부릅니다.PCB는 프로세스와 관련된 다양한 정보를 포함하는 구조체로, 새로운 프로세스가 메모리에 적재될 때 커널 영역에 만들어지며, 프로세스가 종료되면 제거됩니다.프로세스: 메모리에 적재된 실행 중인 프로그램.커널 영역: 운영체제의 핵심 부분을 담당하는 영역으로, 메모리에 적재된 부분을 커널 영역이라고 합니다.구조체: 서로 다른 자료형으로 이루어진 데이터를 하나로 묶어 사용할 수 있는 데이터 구조의 일종입니다. PCB에 담긴 정보PCB에는 프로세스를 관리하기 위..
[OS] 프로그램의 메모리 구조: 코드, 데이터, 힙, 스택, BSS 영역 컴퓨터가 실행되는 순간 메모리에는 다양한 프로세스들이 적재되어 실행됩니다.프로그램이 실행되어 메모리에 적재되었을 때, 이를 프로세스라고 부릅니다.하나의 프로세스를 구성하는 메모리 내의 정보는 크게 다르지 않습니다.커널 영역에는 프로세스 제어 블록(PCB)이라는 정보가 저장되고, 사용자 영역에는 실행 중인 프로세스가 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장됩니다.코드 영역 (Code Segment)실행 가능한 명령어가 저장되는 공간입니다.텍스트 영역(text segment)이라고도 하며, CPU가 읽고 실행할 명령어가 저장되어 있어 쓰기(write)가 금지된 읽기 전용(read-only) 공간입니다.데이터 영역 (Data Segment)프로그램이 실행되는 동안 유지할 데이터가 저장되..
[OS] 시스템 콜, 이중 모드 운영체제도 일종의 프로그램이기 때문에 실행을 하기 위해서는 반드시 메모리에 적재되어야 합니다. 다만 사용자 프로그램과는 달리 운영체제는 매우 특별한 프로그램이므로 메모리 내의 커널 영역(kernel space)에 적재되어 실행됩니다.운영체제가 적재되는 커널 영역 이외에 사용자 응용 프로그램이 적재되는 공간을 사용자 영역(user space)라고 합니다.  여기서 주목해야 할 점은 응용 프로그램이 운영체제의 기능을 제공받기 위해서는 커널 영역에 적재된 운영체제 코드를 실행해야 한다는 것입니다.  일반적으로 웹 브라우저, 워드, 디스코드와 같은 응용 프로그램은 운영체제와는 달리 CPU, 메모리와 같은 자원을 직접적으로 조작할 수 없습니다. 특정 자원에 접근하거나 조작하기 위해서는 운영체제 코드를 실행해야 합..
[OS] 운영체제란? 운영체제란?운영체제(Operating System, OS)는 컴퓨터를 실행하고 관리하는 핵심 소프트웨어로, 사용자가 컴퓨터를 효율적으로 사용할 수 있도록 돕습니다. 우리가 일반적으로 사용하는 프로그램들은 모두 운영체제의 제어 아래에서 실행되며, 운영체제는 이들 프로그램이 원활하게 동작할 수 있도록 관리합니다. 대표적인 운영체제로는 데스크탑 환경에서 사용되는 윈도우, macOS, 리눅스가 있으며, 모바일 환경에서는 안드로이드와 iOS가 있습니다. 운영체제는 다양한 기능을 제공하지만, 모든 운영체제가 공통적으로 수행하는 핵심 기능이 존재합니다. 이 핵심 기능을 담당하는 부분이 바로 커널입니다.  커널: 운영체제의 핵심커널은 운영체제의 중심부로, 컴퓨터의 모든 주요 자원을 관리하고 제어하는 역할을 합니다. 커..
[컴퓨터 구조] 명령어 사이클과 인터럽트 명령어 사이클과 인터럽트CPU가 하나의 명령어를 처리하는 과정은 일정한 흐름을 가지고 있으며, 이를 반복하여 명령어를 처리합니다. 이 정형화된 흐름을 명령어 사이클이라고 합니다.명령어 사이클CPU는 명령어들을 하나씩 실행합니다. 이때 프로그램 속 각각의 명령어들은 일정한 주기로 반복되며 실행되는데, 이 주기를 명령어 사이클이라고 합니다.명령어 사이클 과정인출 사이클 (Fetch Cycle)CPU가 메모리에 신호를 보내고 메모리에서 값을 가져오는 과정입니다.실행 사이클 (Execution Cycle)CPU가 인출한 명령어를 실행합니다. 제어장치가 명령어를 해석하고, ALU(산술 논리 장치)로 연산을 수행하며, 제어 신호를 발생시키는 과정입니다.프로그램 속 명령어들은 일반적으로 인출과 실행 사이클을 반복하여..

728x90