최민우

파이썬 Lark를 이용하여 LaTeX 문법 파싱하기 (1)

파서는 무엇인가? 파서는 데이터 스트림을 읽고 규칙에 따라 토큰으로 분해하는 도구입니다. 이러한 규칙의 집합을 문법(grammar)이라고 합니다. 프로그래밍 언어의 경우, 파서는 코드의 각 줄을 읽어 들이고 이를 토큰으로 분해하여 그 의미를 파악합니다. 예를 들어, A = 14라는 코드를 파싱하면 다음과 같은 토큰으로 분해됩니다: A: ...

인터넷 네트워크

인터넷 통신 인터넷 상에서 컴퓨터들 간의 통신은 어떻게 이루어질까요? 가까운 거리에 있는 두 대의 컴퓨터는 케이블로 직접 연결하여 데이터를 주고받을 수 있습니다. 그러나 인터넷은 수많은 노드와 서버, 광케이블, 위성 등을 통해 연결된 복잡한 망입니다. 따라서 메시지를 안전하게 목적지까지 전달하기 위해서는 일정한 규칙과 프로토콜이 필요합니다. ...

Preview Image

프로세스 동기화 기법 - 뮤텍스, 세마포, 모니터

핵심 내용 요약 동기화의 필요성: 프로세스 동기화를 통해 실행 순서를 제어하고 상호 배제를 보장함으로써 데이터 일관성과 정확성을 유지합니다. 뮤텍스 락 (Mutex Lock): 하나의 프로세스만 임계 구역에 접근하도록 보장하는 도구. 세마포 (Semaphore): 다수의 자원에 대해 다수의 프로세스 접근을 관리하는 도구. 모니터 (M...

프로세스 동기화란?

핵심 내용 요약 동기화의 개념: 동기화는 동시에 실행되는 프로세스들이 협력하여 올바르게 실행되고 자원의 일관성을 보장하는 기법입니다. 실행 순서 제어: 프로세스가 올바른 순서대로 실행되도록 합니다. 상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 합니다. 임계 구역: 공유 자원에 접근하는 코드 중 동시에 실행...

Preview Image

다양한 CPU 스케줄링 알고리즘

핵심 내용 요약 선입선처리 스케줄링 (FCFS): 준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식. 최단작업우선 스케줄링 (SJF): CPU 사용 시간이 짧은 프로세스를 우선으로 실행하는 비선점형 스케줄링 방식. 라운드로빈 스케줄링 (Round Robin): 각 프로세스가 정해진 시간 동안 CPU를 사용할 수 있는...

Preview Image

CPU 스케줄링 개요

핵심 내용 요약 CPU 스케줄링: 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 방법을 의미합니다. 프로세스 우선순위: 프로세스마다 우선순위가 다르며, 이는 PCB에 명시됩니다. 스케줄링 큐: 운영체제는 효율적인 스케줄링을 위해 준비 큐와 대기 큐 등 다양한 큐를 사용합니다. 선점형 vs 비선점형 스케줄링: 선점...