COMPUTER SCIENCE 11

파일 시스템 개념과 inode 작동 방식 이해

파일 시스템의 개념과 역할. 운영체제에서 파일 시스템은 파일의 저장, 조직, 관리를 담당하는 체계입니다. 파일 시스템은 운영체제와 하드웨어 간의 인터페이스 역할을 하며, 파일을 사용자에게 편리하게 제공하기 위해 설계되었습니다. 즉, 운영체제가 저장매체에 파일을 쓰기 위한 자료구조 또는 알고리즘 입니다. 파일 시스템의 역할. 1. 데이터 저장 및 조직: 파일 시스템은 데이터를 저장하고 조직하는 방식을 제공합니다. 파일 시스템은 하드 디스크 등의 물리적인 저장 장치를 사용하여 파일을 블록 단위로 저장하고, 디렉토리 구조를 통해 파일을 계층적으로 구성합니다. 이를 통해 사용자는 파일을 쉽게 찾고 관리할 수 있습니다. 2. 파일의 접근성: 파일 시스템은 파일에 접근하기 위한 인터페이스를 제공합니다. 사용자는 파..

COMPUTER SCIENCE 2023.06.11

물리 메모리와 가상메모리, MMU와 TLB, 가상메모리 알고리즘

물리 메모리 가상 메모리. 물리 메모리(Physical Memory)와 가상 메모리(Virtual Memory)는 컴퓨터 시스템에서 메모리 관리를 위해 사용되는 개념입니다. 물리 메모리는 실제 하드웨어적으로 존재하는 컴퓨터의 주 기억장치를 말합니다. 주로 RAM(Random Access Memory)으로 구성되며, 프로그램이 실행되고 데이터가 저장되는 실제 메모리 공간입니다. 물리 메모리는 직접 접근이 가능하고 처리 속도가 매우 빠릅니다. 그러나 물리 메모리는 제한된 용량을 가지고 있어, 실행 중인 프로세스들이 요구하는 메모리 크기보다 작을 수 있습니다. 가상 메모리는 물리 메모리의 한계를 극복하기 위해 사용되는 메모리 관리 기술입니다. 가상 메모리는 프로그램이 물리 메모리보다 큰 메모리 공간을 사용할 ..

COMPUTER SCIENCE 2023.06.11

스레드의 개념과 장단점, 데드락, 스타베이션 이해하기

스레드(Thread). 스레드(Thread)는 독립적으로 실행되는 작업의 단위입니다. 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며, 각 스레드는 동시에 실행될 수 있습니다. 스레드를 사용하여 동시에 여러 작업을 수행하면 시스템의 자원을 효율적으로 활용할 수 있습니다. 스레드의 개념을 이해하기 위해서는 다음과 같은 개념들을 알아야 합니다: 프로세스(Process). 프로세스는 실행 중인 프로그램을 의미합니다. 각 프로세스는 독립된 메모리 공간을 가지며, 프로세스 간에는 메모리가 분리되어 있습니다. 각 프로세스는 최소한 하나의 스레드(메인 스레드)를 가지고 있습니다. 멀티스레딩(Multithreading). 멀티스레딩은 하나의 프로세스 내에서 여러 개의 스레드를 동시에 실행하는 것을 의미합니다. 멀..

COMPUTER SCIENCE 2023.06.09

멀티 프로세서의 프로세스 커뮤니케이션(IPC) 이해

프로세스 제어 블록. 프로세스 제어 블록(Process Control Block, PCB)은 운영체제가 각 프로세스를 관리하기 위해 유지하는 데이터 구조입니다. PCB는 프로세스에 대한 중요한 정보를 저장하고, 프로세스의 상태 및 동작을 제어하는 데 사용됩니다. 프로세스 식별자(Process ID). 각 프로세스를 식별하는 고유한 번호입니다. 프로세스 상태(Process State). 프로세스의 상태를 나타내며, 대기(waiting), 실행(running), 준비(ready), 종료(terminated) 등의 상태가 포함될 수 있습니다. 레지스터 상태(Register State). 프로세스가 실행될 때 레지스터에 저장되는 데이터를 포함합니다. 이는 프로그램 카운터(PC), 스택 포인터(SP), 누산기(a..

COMPUTER SCIENCE 2023.06.08

프로세스 구조와 콘텍스트 스위치 이해하기

프로세스 구조. - text(CODE): 코드 - data : 변수/초기화된 데이터 - stack : 임시 데이터(함수 호출, 로컬 변수 등) - heap : 코드에서 동적으로 만들어지는 데이터 PC와 SP. PC와 SP는 컴퓨터 아키텍처에서 중요한 개념입니다: PC (Program Counter): PC는 명령어의 실행 위치를 가리키는 레지스터입니다. CPU가 프로그램을 실행할 때, 다음으로 실행할 명령어의 주소를 PC에 저장하고, 명령어를 실행한 후 PC를 증가시켜 다음 명령어로 이동합니다. PC는 명령어의 흐름을 제어하며, 프로그램의 실행 순서를 결정합니다. SP (Stack Pointer): SP는 스택의 최상단을 가리키는 포인터입니다. 스택은 메모리의 일부분으로, 데이터를 임시로 저장하는 용도로..

COMPUTER SCIENCE 2023.06.08

CPU 스케쥴링 및 스케쥴링 알고리즘

CPU 스케쥴링. CPU 스케줄링(CPU Scheduling)은 운영체제에서 여러 프로세스들이 CPU를 공유하여 실행될 때, 어떤 프로세스가 CPU를 할당받을지 결정하는 작업입니다. CPU 스케줄링은 시분할 시스템에서는 작은 시간 단위로 스위칭되는 인터랙티브한 환경부터 배치 처리 시스템에서의 장기 스케줄링까지 다양한 상황에서 필요합니다. ** 관련 용어 알아보기 CPU 스케쥴러. CPU가 유휴 상태가 되면 준비완료 큐에 있는 프로세스를 하나 선택해서 실행합니다. 이 선택은 CPU 스케쥴러(또는 단기 스케쥴러)가 합니다. Dispatcher. 스케쥴러가 선택한 프로세스를 CPU에 할당해주는 요소를 디스패처라고 합니다. 디스패처는 문맥 전환, 모드 전환 등의 업무를 담당하고 하나의 프로세스를 중단하고 다른 ..

COMPUTER SCIENCE 2023.06.07

프로세스 개념과 프로세스 스케쥴링

프로세스. 프로세스(Process)는 운영체제에서 실행 중인 프로그램의 인스턴스입니다. 프로세스는 실행 중인 프로그램의 작업 단위로서 컴퓨터 시스템에서 독립적으로 실행됩니다. 프로세스라는 용어는 작업, tast,job 이라는 용어와 혼용하여 사용합니다. 프로세스는 다음과 같은 특징을 가지고 있습니다: 프로그램 코드와 데이터. 프로세스는 실행 중인 프로그램의 코드와 데이터를 포함합니다. 이는 프로그램의 명령어들과 그에 따른 변수, 상수, 자료 구조 등을 의미합니다. 주소 공간. 각 프로세스는 독립된 가상 주소 공간을 가지고 있습니다. 이는 프로세스가 메모리에 로드되어 실행될 때 해당 프로세스를 위한 메모리 공간이 할당되는 것을 의미합니다. 각 프로세스는 다른 프로세스의 주소 공간에 직접적인 접근이 불가능하..

COMPUTER SCIENCE 2023.06.07

운영체제 개념과 역할의 이해

운영체제. 운영체제는 컴퓨터 시스템의 핵심 소프트웨어로, 하드웨어와 응용 프로그램 사이에서 중개자 역할을 수행하는 시스템 소프트웨어입니다. 운영체제는 컴퓨터 자원을 효율적으로 관리하고, 응용 프로그램이 원활하게 실행될 수 있는 환경을 제공합니다. - 컴퓨터 하드웨어를 관리하는 프로그램 - 응용 프로그램의 토대를 제공해주는 프로그램 - 컴퓨터의 사용자와 컴퓨터 하드웨어 사이에 중간 매개체 역할을 해주는 프로그램 컴퓨터 시스템의 구성요소. 하드웨어 / 운영체제 / 응용프로그램 / 사용자 커널((Kernel). 커널(Kernel)은 운영체제의 핵심 부분으로, 하드웨어와 응용 프로그램 사이에서 상호 작용하는 핵심 소프트웨어 컴포넌트입니다. 커널은 운영체제의 핵심 기능을 수행합니다. 시스템 쉘(System She..

COMPUTER SCIENCE 2023.06.07

반가산기와 전가산기 그리고 Oscillator

반가산기 (Half Adder). 반가산기는 두 개의 입력 비트(A와 B)를 받아서 합(Sum)과 자리올림(Carry)을 계산하는 논리 회로입니다. 반가산기는 가장 기본적인 형태의 덧셈을 수행하는 논리 회로로서, 단일 비트의 덧셈을 처리합니다. 2입력 2출력 구조, 두 입력값을 더하여 자리 올림 수(carry)와 덧셈 결과(sum)를 출력 반가산기는 입력 비트 간의 합과 자리올림 비트를 계산하기 때문에, 2개의 비트를 더할 때에는 반가산기만으로는 부족합니다. 반가산기는 반쪽짜리 가산기입니다. 반가산기의 논리식은 다음과 같습니다. Sum = A XOR B Carry = A AND B Sum: 입력 비트 A와 B를 XOR 연산한 결과를 출력합니다. XOR 연산은 입력 비트 중 하나만 1인 경우에 1을 출력하..

COMPUTER SCIENCE 2023.06.05

논리회로 게이트 종류 - AND, OR, NOT, NAND, NOR, XOR, XNOR

논리 회로 게이트. 논리 회로 게이트는 디지털 논리 회로에서 사용되는 기본적인 논리 연산을 수행하는 전자 소자입니다. 논리 회로 게이트는 입력 신호에 대한 논리적 연산을 수행하여 출력 신호를 생성합니다. 이러한 게이트들을 조합하여 복잡한 논리 회로를 구성할 수 있습니다. 논리 회로 게이트는 컴퓨터의 중요한 구성 요소로 사용되며, CPU, 메모리, 제어 장치 등 컴퓨터의 다양한 부분에서 논리 연산을 수행하는 데 활용됩니다. AND 게이트 (논리곱 게이트). 그리고에 해당, 두 개의 입력이 모두 참(1)일 때에만 출력이 참(1)이 되는 게이트입니다. OR 게이트 (논리합 게이트). 또는 에 해당, 두 개의 입력 중 하나 이상이 참(1)일 때 출력이 참(1)이 되는 게이트입니다. NOT 게이트 (논리 부정 게..

COMPUTER SCIENCE 2023.06.05