다중 프로그래밍
다중 프로그래밍은 여러 개의 프로그램을 동시에 메모리에 적재하여 실행하는 운영 기법입니다. 이를 통해 CPU의 이용률을 최대화하고, 프로세스 간에 발생할 수 있는 대기 시간을 최소화할 수 있습니다. 운영 체제는 프로세스를 일시 중단하고 다른 프로세스에게 CPU를 할당하는 스케줄링 기법을 사용하여 여러 프로세스를 동시에 실행합니다.
시분할 시스템
시분할 시스템은 여러 사용자가 동시에 컴퓨터를 사용할 수 있도록 하는 운영 기법입니다. 시분할 시스템은 작은 단위의 시간인 타임 슬라이스(time slice)를 할당하고, 각 사용자는 할당된 시간 동안 컴퓨터를 사용합니다. 이를 통해 사용자는 동시에 작업을 수행하는 것처럼 느낄 수 있습니다. 운영 체제는 타임 슬라이스가 경과할 때마다 프로세스 전환이 발생하도록 스케줄링 합니다.
병행성(Concurrency)
병행성은 여러 개의 프로세스가 동시에 실행되는 것처럼 보이게 하는 운영 기법입니다. 이를 통해 여러 작업이 동시에 진행되는 것처럼 느껴지지만, 실제로는 CPU가 각 작업을 번갈아 가며 실행합니다. 병행성은 동기화(synchronization)와 상호 배제(mutual exclusion)라는 개념을 포함하며, 이러한 개념을 통해 프로세스 간의 안전한 데이터 공유와 동기화를 달성할 수 있습니다.
다중 스레딩
다중 스레딩은 하나의 프로세스 내에서 여러 개의 스레드가 동시에 실행되는 것을 의미합니다. 스레드는 프로세스의 자원을 공유하며, 각각 독립적인 실행 경로를 가지고 있습니다. 다중 스레딩을 이용하면 작업을 더 빠르게 처리할 수 있고, 프로세스 간 통신과 컨텍스트 전환에 필요한 자원을 절약할 수 있습니다. 또한, 다중 스레딩은 병행성과 관련된 개념이며, 동기화 기법을 사용하여 스레드 간의 안전한 데이터 공유를 보장합니다.
댓글