728x90 반응형 전체 글231 공유자원과 임계 영역(면접을 위한 CS 전공지식 노트) 공유자원과 임계 영역 공유자원과 임계 영역 공유 자원 (Shared Resource): 공유 자원은 여러 프로세스나 스레드에 의해 동시에 접근될 수 있는 데이터나 자원을 가리킵니다. 예를 들어, 메모리, 파일, 네트워크 연결, 데이터 구조, 프린터 등은 공유 자원의 예입니다. 여러 프로세스나 스레드가 공유 자원을 동시에 수정하거나 읽는 경우, 데이터 일관성과 안전성 문제가 발생할 수 있습니다. 임계 영역 (Critical Section): 임계 영역은 공유 자원에 접근하는 코드 또는 섹션을 가리킵니다. 임계 영역은 여러 프로세스나 스레드가 동시에 접근하지 못하도록 보호되어야 합니다. 그렇지 않으면 공유 자원에 대한 경쟁 조건 (Race Condition)이 발생할 수 있습니다. 이것은 예측할 수 없는 결.. 2023. 9. 21. 스레드와 멀티스레딩(면접을 위한 CS 전공지식 노트) 스레드와 멀티스레딩 스레드와 멀티스레딩 스레드(Thread)와 멀티스레딩(Multithreading)은 컴퓨터 프로그래밍에서 중요한 개념으로, 다중 작업을 동시에 수행하거나 병렬로 실행하기 위해 사용됩니다. 스레드(Thread) 스레드(Thread): 스레드는 프로세스 내에서 실행되는 가장 작은 실행 단위입니다. 하나의 프로세스 내에서 여러 스레드가 동시에 실행될 수 있습니다. 스레드는 프로세스 내의 자원(메모리, 파일 등)을 공유하므로 스레드 간 데이터 공유가 쉽습니다. 스레드는 프로세스의 코드 세그먼트와 데이터 세그먼트를 공유하며, 각 스레드는 별도의 스택을 가집니다. 스레드는 프로세스 내에서 생성 및 관리되며, 스레드 간 통신이 비교적 쉽고 빠릅니다. 멀티스레딩(Multithreading) 멀티스레.. 2023. 9. 20. 멀티프로세싱(면접을 위한 CS 전공지식 노트) 멀티프로세싱 멀티프로세싱 멀티프로세싱(Multiprocessing)은 컴퓨터 과학 및 소프트웨어 개발에서 사용되는 중요한 개념으로, 하나 이상의 프로세서(또는 CPU 코어)를 사용하여 여러 작업을 동시에 처리하는 기술입니다. 멀티프로세싱 이점 성능 향상: 멀티프로세싱을 사용하면 작업을 병렬로 처리할 수 있으므로, 여러 작업을 동시에 수행하여 시스템의 전체 성능을 향상할 수 있습니다. 작업 분리: 멀티프로세싱은 하나의 큰 작업을 여러 개의 작은 작업으로 분리하고, 각 작업을 별도의 프로세서에서 실행하여 복잡한 작업을 단순화하고 가속화할 수 있습니다. 응답성 향상: 멀티프로세싱을 사용하면 다른 작업이 진행 중이더라도 시스템이 계속해서 응답하고 작업을 수행할 수 있어 사용자 경험을 향상시킬 수 있습니다. 멀티.. 2023. 9. 19. PCB(면접을 위한 CS 전공지식 노트) PCB PCB PCB는 "Printed Circuit Board"의 약자로, 전자 기기에서 전기적 및 전자적 구성 요소를 연결하고 지지하기 위한 핵심 구성 요소 중 하나입니다. PCB는 주로 전자 제품 및 회로에서 사용되며, 다양한 크기와 형태로 만들어질 수 있습니다. PCB(인쇄회로기판)개발의 역사 전자 기기의 복잡성 증가: 20세기 중반 이후, 전자 기기 및 회로의 복잡성이 급격하게 증가하였습니다. 초기에는 전선과 직접적으로 부품을 연결하는 방식으로 회로를 구성했으나, 이는 복잡한 회로를 설계하고 제작하는 데 어려움을 초래했습니다. 오작동 및 결함 감소 필요: 기존의 방식으로는 연결이 불안정하고 오작동 및 결함이 많이 발생하는 문제가 있었습니다. 특히 물리적인 배선 오류나 연결 부품의 부실한 연결로 .. 2023. 9. 18. 프로세스의 메모리 구조(면접을 위한 CS 전공지식 노트) 프로세스의 메모리 구조 프로세스의 메모리 구조 구성요소 코드 영역 (Code Segment 또는 Text Segment): 프로세스의 실행 코드가 저장되는 영역입니다. 이 영역은 실행 파일 (실행 가능한 프로그램) 내의 명령어들을 포함하고 있으며, CPU가 실행 코드를 읽어와 실행합니다. 이 영역은 일반적으로 읽기 전용으로 설정되어 있으므로 프로그램 코드를 수정하지 못합니다. 데이터 영역 (Data Segment): 데이터 영역은 초기화된 전역 변수 및 정적 변수가 저장되는 곳입니다. 이 영역은 프로그램의 시작 시에 초기화되며, 프로그램의 수명 동안 유지됩니다. BSS (Block Started by Symbol) 영역: BSS 영역은 초기화되지 않은 전역 변수 및 정적 변수를 저장하는 데 사용됩니다. .. 2023. 9. 17. 프로세스의 상태(면접을 위한 CS 전공지식 노트) 프로세스의 상태 프로세스의 상태 프로세스의 상태는 컴퓨터 과학 및 운영 체제에서 중요한 개념 중 하나로, 실행 중인 프로그램 또는 작업의 현재 상태를 나타냅니다. 프로세스 상태는 다음과 같은 주요 상태로 나눌 수 있습니다. 준비 상태 (Ready State): 프로세스가 실행을 기다리는 상태입니다. CPU 시간을 할당받기 위해 대기하고 있지만 아직 실행되지 않은 상태입니다. 실행 상태 (Running State): CPU를 사용하여 명령을 실행하고 있는 상태입니다. 하나의 CPU 코어에서는 한 번에 하나의 프로세스만 실행됩니다. 차단 상태 (Blocked State 또는 Waiting State): 프로세스가 어떤 이벤트(예: 입출력 작업 완료, 시그널 수신 등)가 발생할 때까지 대기하는 상태입니다. 이.. 2023. 9. 16. 프로세스와 컴파일 과정(면접을 위한 CS 전공지식 노트) 프로세스와 컴파일 과정 프로세스(Process) 프로세스는 컴퓨터 시스템에서 실행 중인 프로그램의 인스턴스를 나타냅니다. 프로세스는 메모리에 로드된 프로그램 코드와 데이터를 실행하는 단위이며, 독립적으로 실행됩니다. 각 프로세스는 다른 프로세스와 격리되어 있어, 하나의 프로세스가 다른 프로세스에 영향을 미치지 않습니다. 이는 운영 체제가 제어하며, 멀티태스킹 환경에서 여러 프로세스가 동시에 실행될 수 있게 합니다. 프로세스의 주요 특징 및 구성 요소 프로세스 ID (PID): 각 프로세스는 고유한 식별자인 PID를 가지며, 시스템에서 해당 프로세스를 식별하는 데 사용됩니다. 프로그램 코드: 실행 중인 프로그램의 명령어와 로직이 포함된 메모리 영역입니다. 데이터 영역: 프로세스가 사용하는 변수와 데이터 구.. 2023. 9. 15. 메모리 관리(면접을 위한 CS 전공지식 노트) 메모리 관리 메모리 관리 메모리 관리(Memory Management)는 컴퓨터 시스템에서 주 메모리(RAM - Random Access Memory)를 효율적으로 관리하고 제어하는 프로세스 또는 기술을 의미합니다. 이는 컴퓨터의 중요한 부분 중 하나로, 다양한 프로그램 및 프로세스가 메모리를 공유하고, 데이터 및 명령어를 저장하고 접근하는 방법을 관리하여 시스템의 안정성과 성능을 유지하는 데 중요한 역할을 합니다. 메모리 관리 기능 할당 (Allocation): 사용 가능한 메모리 공간 중에서 프로세스에게 필요한 양의 메모리를 할당합니다. 이때 메모리는 물리적인 주소 공간에서 가용한 곳에 할당됩니다. 해제 (Deallocation): 프로세스가 메모리를 더 이상 사용하지 않으면 해당 메모리를 해제하여 .. 2023. 9. 14. 메모리 계층(면접을 위한 CS 전공지식 노트) 메모리 계층 메모리 계층 데이터와 명령어를 저장하고 검색하는 데 사용되는 여러 계층의 저장장치 또는 메모리 유형을 나타냅니다. 메모리 계층은 주로 성능과 비용을 균형있게 고려하여 컴퓨터 시스템의 전반적인 성능을 최적화하는 데 도움을 줍니다. 메모리 계층의 구조 레지스터(Register): 레지스터는 CPU 내부에 위치하며 가장 빠른 메모리 계층입니다. CPU가 계산을 수행하기 위해 사용하는 작고 고속의 메모리 공간입니다. 데이터를 레지스터로 이동하는 것이 가장 빠릅니다. 캐시 메모리(Cache Memory): 캐시 메모리는 CPU와 주 메모리(주로 RAM) 사이에 위치한 중간 계층입니다. 주 메모리로부터 자주 사용되는 데이터와 명령어를 저장하여 CPU가 빠르게 액세스할 수 있도록 합니다. 레지스터에 비해.. 2023. 9. 13. 이전 1 ··· 13 14 15 16 17 18 19 ··· 26 다음 728x90 반응형