본문 바로가기

반응형
SMALL

Backend/CS

(12)
2. 운영체제 (힙과 컨텍스트스위칭 이해) 힙(Heap) 힙은 프로그래밍에서 중요한 메모리 관리 영역으로, 주로 동적 메모리 할당에 사용됩니다. 동적 메모리 할당: 프로그램이 실행되는 동안 필요에 따라 메모리를 할당하고 해제할 수 있는 영역입니다. 예를 들어, C언어에서 **malloc**과 free, 자바에서는 **new**와 가비지 컬렉터를 통한 자동 해제가 이에 해당합니다. Java의 가비지 컬렉션(GC): 자바에서는 개발자가 직접 메모리를 관리하지 않아도 됩니다. 대신, JVM(Java Virtual Machine)의 가비지 컬렉터가 더 이상 사용되지 않는 객체를 자동으로 감지하여 메모리에서 제거합니다. 이는 메모리 누수를 방지하고 프로그램의 안정성을 높이는 데 도움이 됩니다. 컨텍스트 스위칭(Context Switching) 컨텍스트 스..
2. 운영체제 (프로세스와 스케쥴링) 멀티 프로그래밍 목적: CPU의 활용도를 극대화하는 것입니다. 이를 위해, 하나의 프로그램이 I/O 작업 등으로 대기 상태에 있을 때 다른 프로그램이 CPU를 사용할 수 있도록 합니다. 동작 원리: 프로그램이 CPU를 사용하다가 파일을 읽는 등의 작업으로 대기 상태가 되면, 운영 체제는 대기 중인 다른 프로그램을 CPU에 할당합니다. 이는 시스템 자원의 효율적 사용을 가능하게 합니다. 멀티 태스킹과 멀티 프로세싱 멀티 태스킹 정의: 단일 CPU에서 여러 프로세스 또는 작업을 동시에 처리하는 기술입니다. 메커니즘: 시간을 매우 짧은 단위로 분할하여, 각 프로세스에 번갈아 할당함으로써 동시에 실행되는 것처럼 보이게 합니다. 멀티 프로세싱 정의: 여러 개의 CPU를 사용하여 여러 프로세스를 동시에 실행하는 기..
2. 운영체제(프로세스 개념 및 스케줄링) 프로세스 (Process) 정의: 메모리에 로드되어 실행 중인 프로그램을 '프로세스'라고 합니다. 프로세스는 실행 중인 프로그램의 인스턴스입니다. 특징: 프로세스는 코드, 데이터, 힙, 스택 등을 포함하는 자체 메모리 공간을 가집니다. 하나의 응용 프로그램은 여러 프로세스로 구성될 수 있습니다. 예를 들어, 웹 브라우저는 여러 탭 각각이 별도의 프로세스로 실행될 수 있습니다. 스케줄링 기본 개념 배치 처리 시스템 (Batch Processing System) 개념: 여러 프로그램을 순차적으로 자동으로 실행하는 시스템입니다. 문제점: 한 프로그램의 실행 시간이 길 경우, 다른 프로그램들이 실행을 위해 오랜 시간 기다려야 할 수 있습니다. 시분할 시스템 (Time-Sharing System) 목적: 다중 사..
2. 운영체제 (커널 모드와 사용자 모드 이해) 커널 모드와 사용자 모드 CPU Protection Ring 컴퓨터 시스템의 핵심적인 부분 중 하나는 운영체제의 두 가지 주요 모드, 즉 '커널 모드'와 '사용자 모드'입니다. 이 두 모드는 시스템의 안정성과 보안을 유지하는 데 핵심적인 역할을 합니다. 컴퓨터 시스템을 이해하는 데 있어 중요한 두 가지 개념은 바로 '커널 모드'와 '사용자 모드'입니다. 이 두 모드는 운영체제와 응용 프로그램의 상호작용, 그리고 시스템 자원의 관리 및 보안에 있어 핵심적인 역할을 합니다. 1. 사용자 모드 (User Mode) 사용자 모드는 일반적인 응용 프로그램이 실행되는 환경입니다. 이 모드에서 응용 프로그램은 시스템의 전체 리소스에 대한 직접적인 접근이 제한됩니다. 이는 응용 프로그램이 시스템을 위험에 빠트리는 행위..
2. 운영체제(운영체제 개념 및 커널과 쉘 이해) 운영체제 (Operating System): 운영체제의 주요 기능은 프로세스 관리, 메모리 관리, 파일 시스템 관리, 디바이스 관리 등이 있습니다. 프로세스 관리는 다중 작업을 지원하며, CPU 스케줄링과 프로세스 간 통신을 담당합니다. 메모리 관리는 물리적인 메모리를 효율적으로 할당하고 관리합니다. 파일 시스템 관리는 파일 및 디렉토리 생성, 읽기, 쓰기, 삭제 등 파일 관리 작업을 수행합니다. 디바이스 관리는 입출력 장치와의 상호 작용을 관리하며, 드라이버와 인터럽트 처리를 포함합니다. 커널 (Kernel): 커널은 운영체제의 핵심 부분으로, 하드웨어와 소프트웨어 간 인터페이스 역할을 합니다. 커널은 프로세스 관리, 메모리 관리, 파일 시스템 관리 등의 중요한 서비스를 제공합니다. 커널은 모놀리식(M..
1. 컴퓨터 구조 (Program Counter) 프로그램 카운터 (PC): 컴퓨터 구조에서 프로그램 카운터는 컴퓨터 프로세서에 있는 레지스터로, 다음에 실행될 명령어의 주소를 담고 있습니다. 16비트 카운터에서는 최대 2^16 (65,536)개의 고유 메모리 위치를 주소 지정할 수 있습니다. 1씩 증가하는 조합논리회로: 이는 프로그램 카운터를 하나씩 증가시키는 디지털 논리 회로를 말합니다. 이를 통해 순차적으로 다음 명령어에 접근할 수 있습니다. 조합 논리 회로는 현재의 입력만을 바탕으로 출력을 생성하는데, 이는 메모리 요소가 필요하지 않습니다. 자동화, 데이터, 코드: 이들은 넓은 의미를 가진 용어들입니다. 이 문맥에서 "자동화"는 프로그램 카운터와 프로세서의 다른 측면들의 자동 작동을 의미할 수 있습니다. "데이터"는 컴퓨터가 처리하는 정보를, "..
1. 컴퓨터 구조 (메모리 동작과 구성 이해) 8x1 메모리 동작과 구성 이해 1 bit latch 1비트 래치는 한 비트의 데이터를 저장하는 기본 메모리 장치입니다. 플립플롭과 같은 간단한 회로와 피드백으로 구성되어 있습니다. "Write" 작업을 통해 데이터를 설정하거나 재설정할 수 있습니다(즉, 1 또는 0으로 작성). 8 bit latch 8비트 래치는 8 비트의 데이터를 저장하기 위해 1비트 래치 개념을 확장한 것입니다. 8개의 1비트 래치를 병렬로 배열한 것으로 볼 수 있습니다. 8비트 래치의 각 비트는 개별적으로 설정하거나 재설정할 수 있습니다. 8-to-1 selector 8대1 선택기는 8개의 입력 신호 중 하나를 선택하여 단일 출력 라인으로 전달합니다. 어느 8개의 입력이 출력으로 라우팅될지 결정하기 위해 3개의 선택 라인을 사용합..
1. 컴퓨터 구조 (플립플롭과 메모리) 플립플롭 (Flip-Flop) 기본 정의 플립플롭: 플립플롭은 디지털 회로의 기본적인 저장소로, 단일 비트의 데이터를 저장할 수 있는 조합논리회로입니다. 용도: 이는 컴퓨터 메모리, 레지스터, 시퀀싱 및 타이밍 회로 등 다양한 곳에서 사용됩니다. RS 플립플롭 (Reset-Set Flip-Flop) 동작 원리: RS 플립플롭은 두 개의 입력 신호인 'Reset'과 'Set'을 사용합니다. 기능: 'Set' 입력은 데이터를 1로 설정하고, 'Reset' 입력은 데이터를 0으로 초기화합니다. Level-triggered Flip-Flop Hold That Bit: 일명 'Hold That Bit'라고도 불리는 이 플립플롭은 입력 신호의 레벨(고정된 상태)에 따라 데이터를 유지합니다. Level-trigger..

반응형
LIST