본문 바로가기
728x90
반응형

CS68

하루에 하나씩 배우는 컴퓨터 사이언스 개념: 데드락과 스타베이션 개념 오늘은 컴퓨터 사이언스 개념 중 하나인 데드락(Deadlock)과 스타베이션(Starvation)에 대해 살펴봅니다. 이 두 가지 개념은 멀티 스레딩 환경에서 흔히 발생할 수 있는 문제로, 컴퓨터 공학 지식 기반의 원인 이해가 필요합니다. 이번 글에서 공유자원 액세스를 위한 잠금 기본 원칙, 그리고 데드락과 스타베이션의 정의, 원인 및 대응방안을 자세히 알아보겠습니다. 1. 공유자원 액세스를 위한 잠금 기본 원칙 멀티 스레딩 환경에서 여러 스레드가 동시에 공유 자원에 접근하려면 동기화가 필요합니다. 이를 확보하기 위해서는 잠금(Locking) 이라는 기본 원칙이 존재합니다. 그렇다면 잠금 기법이 완벽한 동기화를 보장할까요? 아쉽게도 잘못 사용된 경우 문제를 초래할 수 있습니다. 데드락과 스타베이션은 잠금.. 2023. 8. 11.
하루에 하나씩 배우는 컴퓨터 사이언스 개념: 컴퓨터 공학 지식 기반 동기화 원인 이해와 해결 방법 오늘은 컴퓨터 사이언스 개념 중 하나인 동기화 이슈에 대해 살펴봅니다. 스레드와 프로세스의 차이부터 동기화 이슈가 발생하는 원인, 해결 방법에 이르기까지 컴퓨터 공학 지식 기반의 동기화 원인 이해에 필요한 내용을 다뤄보겠습니다. 1. 스레드와 프로세스의 차이 프로세스는 운영 체제 소프트웨어가 실행 중인 프로그램의 인스턴스를 기술적으로 나타낸 것으로, 각각 독립된 주소 공간과 시스템 자원을 가집니다. 프로세스는 운영 체제에 의해 독립적으로 실행 및 관리되며, 다른 프로세스와 구별되는 별도의 실행 흐름을 가집니다. 충돌이나 데이터 유출이 없도록 다른 프로세스와 자원을 공유하지 않습니다. 스레드는 프로세스 내에 포함되어 실질적인 작업이 실행되는 실행 흐름](https://en.wikipedia.org/wiki.. 2023. 8. 10.
하루에 하나씩 배우는 컴퓨터 사이언스 개념: 스레드 동기화 이슈 이해 이 글에서는 컴퓨터 사이언스 개념 중 하나인 스레드 동기화 이슈에 대해 좀 더 자세히 알아보겠습니다. 이해를 돕기 위해 스레드와 프로세스의 차이, 동기화 이슈가 발생하는 이유, 그리고 해결 방법 및 예제를 살펴봅니다. 1. 스레드와 프로세스의 차이 프로세스는 실행 중인 프로그램으로, 스스로 독립적으로 실행 가능한 단위입니다. 프로세스는 자신만의 메모리 공간과 시스템 자원을 가지며, 각 프로세스는 다른 프로세스와 독립된 실행 흐름을 가집니다. 스레드는 프로세스 내에서 수행되는 독립적인 실행 흐름입니다. 스레드는 경량화된 프로세스로 보여질 수 있으나 가볍고 효율적입니다. 프로세스 내의 모든 스레드는 코드와 데이터를 공유하며, 작업 처리 속도를 높이기 위해 병렬 처리에 대한 지원을 제공합니다. 2. 스레드 동.. 2023. 8. 9.
하루에 하나씩 배우는 컴퓨터 사이언스 개념: 멀티스레딩과 자세한 스레드의 장단점 이 글에서는 스레드의 장단점에 대해 자세히 알아보겠습니다. 스레드를 이용한 동시성 및 병렬 처리가 프로그래밍에서 어떠한 이점을 가져다주며, 어떠한 어려움을 겪을 수 있는지 살펴봅니다. 이를 통해 멀티스레딩을 활용한 더 효율적인 프로그래밍을 할 수 있는 방법을 찾아보겠습니다. 1. 왜 멀티스레딩이 필요한가? 멀티스레딩은 다양한 개발 작업에 있어 직접 작업 부하를 줄이고, 효율성을 높이기 위해 사용됩니다. 여러 개의 스레드가 동시에 작업을 수행함으로써, 프로세스 단위로 실행되는 작업보다 빠른 처리를 할 수 있습니다. 또한, 자원을 공유하는 스레드끼리는 메모리와 시스템의 부하를 줄일 수 있기 때문에, 멀티태스킹을 수행할 때 효율적으로 작업할 수 있습니다. 2. 스레드의 장점 2.1. 자원 공유 스레드는 프로세.. 2023. 8. 8.
728x90
반응형