728x90
반응형

전체 글 168

페이징 & 세그멘테이션

페이징(Paging)과 세그멘테이션(Segmentation)은 메모리 관리 기법 중 하나로, 가상 메모리를 물리적 메모리로 매핑하는 방식입니다. 페이징 프로세스를 고정 크기의 페이지(Page)로 분할하여, 물리적 메모리에 적재합니다. 이 때, 페이지 테이블(Page Table)을 사용하여 가상 주소와 물리 주소의 매핑 정보를 저장합니다. 프로세스가 필요한 페이지를 요청할 때마다, 페이지 테이블을 참조하여 해당 페이지의 물리 주소를 찾아 접근합니다. 🚀 장점 논리적 주소 공간을 동일한 크기의 페이지로 분할하기 때문에 메모리 공간을 효율적으로 사용할 수 있습니다. 내부 단편화를 해결할 수 있습니다. 💔 단점 페이지 크기를 정해야 하기 때문에, 페이지의 크기가 작으면 페이지 테이블의 크기가 커지게 되고, 큰 ..

CS 2023.04.08

경쟁 상태(Race Condition)

여러 프로세스나 스레드가 공유된 자원에 동시에 접근하면서 발생할 수 있는 문제입니다. 이러한 상황에서 각 프로세스나 스레드가 자원을 사용하는 순서나 시점이 일정하지 않아서 예상치 못한 결과가 발생할 수 있습니다. Race Condition으로 인하여 발생하는 문제 상호 배제 (Mutual exclusion) 동일한 자원을 여러 프로세스 또는 스레드가 동시에 접근할 때 발생할 수 있습니다. 이 때, 자원을 한 번에 하나의 프로세스 또는 스레드만이 사용할 수 있도록 제한하는 것이 필요합니다. 기아 상태 (Starvation) 프로세스나 스레드가 자원을 얻지 못해 영원히 대기하는 상태를 말합니다. 이는 일부 프로세스나 스레드가 우선적으로 자원을 사용하는 것을 방지하기 위해 대기 중인 프로세스나 스레드에도 자원..

CS 2023.04.08

데드락(Deadlock, 교착상태)

프로세스나 스레드가 서로 상대방의 자원을 점유하고 있는 상태에서 더 이상 진행할 수 없는 상태를 말합니다. 이러한 상태에서는 각각의 프로세스나 스레드가 다른 프로세스나 스레드가 점유한 자원을 기다리며 아무 일도 처리할 수 없게 됩니다. 데드락이 발생하면 시스템이 정지되어 모든 프로세스나 스레드가 종료되기 전까지 대기 상태로 남아 있게 됩니다. 이러한 상황은 시스템의 안정성과 가용성을 저하시키며, 대규모 시스템에서 데드락이 발생하면 심각한 문제를 초래할 수 있습니다. 발생 원인 상호 배제(Mutual Exclusion) 자원은 한 번에 한 프로세스나 스레드에 의해 점유될 수 있습니다. 이러한 상태에서 다른 프로세스나 스레드가 해당 자원을 점유하기 위해 대기하게 됩니다. 점유 대기(Hold and Wait)..

CS 2023.04.08

CPU 스케줄링

CPU 스케줄링은 여러 개의 프로세스가 동시에 실행될 때 CPU가 어떤 프로세스에게 우선순위를 부여하고 어떤 방식으로 처리할지를 결정하는 작업입니다. CPU 스케줄링의 종류 선점형 스케줄링 선점형 스케줄링은 실행 중인 프로세스가 다른 프로세스가 실행되어야 할 시점에 강제로 CPU를 빼앗겨 다른 프로세스가 실행될 수 있는 방식입니다. 이러한 방식으로 다른 프로세스에게 CPU를 양보하는 것을 컨텍스트 스위칭(Context Switching)이라고 합니다. 선점형 스케줄링은 우선순위가 높은 프로세스가 존재할 때 중요하며, 대표적으로 라운드 로빈, 다단계 큐 스케줄링 등이 있습니다. 🚀 장점 응답 시간이 더 짧아지므로, 시스템의 대화형 성능이 향상됩니다. 우선순위가 높은 작업에 더 많은 CPU 시간이 할당되므로..

CS 2023.04.08

IPC(Inter-Process Communication)

프로세스 간 통신(Inter-Process Communication, IPC)이란 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻한다. IPC 종류 1. 파이프(Pipe) 파이프는 단방향 통신을 지원하는 IPC 방법으로, 한 프로세스에서 생성한 데이터를 다른 프로세스로 전송하는 데 사용됩니다. 파이프는 읽기와 쓰기로 구성되며, 프로세스는 파일 디스크립터를 사용하여 파이프와 상호 작용합니다. 2. 메시지 큐(Message Queue) 메시지 큐는 비동기식 IPC 방법으로, 큐를 통해 메시지를 전송하는 방식입니다. 메시지 큐는 이름을 가진 큐에 메시지를 추가하거나 제거할 수 있으며, 메시지를 읽는 동안 큐의 메시지는 계속 존재합니다. 3. 공유 메모리(Shared Memor..

CS 2023.04.08

애자일(Agile)

소프트웨어 방법론의 하나로, 처음부터 끝까지 계획을 수립하고 개발하는 폭포수(Waterfall) 방법론과는 달리 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법이다. 정식 명칭은 애자일 소프트웨어 개발(Agile Software Development). 한국에서는 주로 애자일 방법론 이라고 부른다. 켄트 벡이 주창한 익스트림 프로그래밍(XP, Extreme Programming)과 테스트 주도 개발이 대표적이다. 애자일 선언문(Manifesto for Agile Software Development) 우리는 소프트웨어를 개발하는 더 나은 방법을 발견하기 위해 일하며, 다른 사람들이 그것을 할 수 있도록 돕는다. 이 작업을 통해 우리는 다음을 중요시한다는 것을 깨달았다: 과정과 도구보다 개인과 ..

CS 2023.04.07
728x90
반응형