faith_coder_lab.log
로그인
faith_coder_lab.log
로그인
운영체제 | 스케줄링
Faithful Dev
·
2025년 1월 25일
팔로우
0
운영체제
컴퓨터 공학
컴퓨터 공학
목록 보기
21/81
시분할 시스템 (Time-Sharing System)
정의
시분할 시스템은
CPU의 시간을 분할하여 여러 사용자 또는 프로세스가 동시에 시스템을 사용하는 것처럼 보이도록 하는 운영체제 기술
이다.
각 사용자나 프로세스는 짧은 시간 동안 CPU를 사용하며, 빠르게 전환되므로 동시에 실행되는 것처럼 보인다.
특징
빠른 전환
: CPU는 여러 프로세스 간에 빠르게 전환한다.
응답 시간 보장
: 사용자 요청에 대한 응답 시간이 짧아 사용자 경험이 향상된다.
공유 자원
: 여러 사용자가 동일한 자원(CPU, 메모리 등)을 효율적으로 공유한다.
예시
UNIX, Linux 등의 운영체제가 시분할 방식을 사용.
다중 사용자 시스템에서 터미널을 통해 여러 사람이 동시에 작업.
멀티태스킹 (Multitasking)
정의
멀티태스킹은
하나의 CPU에서 여러 작업(Task)을 동시에 실행하는 것처럼 보이게 하는 기술
이다.
시분할 시스템의 개념을 확장한 것으로, 단일 사용자가 여러 응용프로그램(프로세스 또는 스레드)을 동시에 실행할 수 있게 한다.
특징
협력적 멀티태스킹
: 각 작업이 스스로 CPU를 반환.
선점형 멀티태스킹
: 운영체제가 작업 간 전환을 제어(현대 운영체제에서 일반적).
예시
음악을 들으면서 문서 작성(텍스트 편집기)과 인터넷 검색(웹 브라우저)을 동시에 수행.
멀티프로그래밍 (Multiprogramming)
정의
멀티프로그래밍은
하나의 메모리 공간에 여러 프로그램을 로드하여 동시에 실행할 수 있도록 하는 기술
이다.
CPU가 항상 작업을 수행하도록 하여 자원 사용률을 극대화하는 것이 목표이다.
특징
I/O와 CPU 병렬 사용
: 한 작업이 I/O 작업을 수행하는 동안 다른 작업이 CPU를 사용할 수 있다.
효율성
: 자원의 낭비를 줄이고 시스템 처리량(Throughput)을 증가시킨다.
선점 없음
: 초기 멀티프로그래밍 시스템에서는 선점형 스케줄링이 아닌, 프로세스가 CPU를 스스로 반환.
예시
대형 메인프레임 컴퓨터에서 사용되며, 다양한 작업(예: 데이터 입력, 계산)을 동시에 처리.
wait (대기 상태)
정의
wait
는 프로세스가 특정 조건이나 이벤트가 발생하기를 기다리는 상태 또는 명령어이다.
주로 입출력(I/O) 작업이 완료되거나 특정 신호를 수신할 때까지 프로세스가 대기 상태로 들어간다.
특징
CPU는 이 상태의 프로세스를 처리하지 않고, 다른 프로세스에 할당.
대기 상태가 끝나면 프로세스는
준비 상태(Ready)
로 전환되어 다시 CPU를 요청.
예시
입출력 작업 완료를 기다리는 상태.
다중 프로세스 환경에서 부모 프로세스가 자식 프로세스 종료를 기다릴 때 사용되는
wait()
시스템 호출.
멀티태스킹과 멀티프로세싱
멀티태스킹(Multitasking)
정의
: 단일 CPU에서 여러 작업(프로세스/스레드)을
동시에 수행하는 것처럼 보이게 하는 기술.
특징
:
CPU 시간 분할을 통해 다수의 작업을 처리.
단일 CPU 환경에서 실행.
멀티프로세싱 (Multiprocessing)
정의
: 여러 개의 CPU 또는 코어를 사용하여 다수의 작업을 병렬로 처리하는 기술.
특징
:
진정한 병렬성
: 여러 CPU가 동시에 독립적으로 작업을 수행.
하나의 작업을 여러 CPU가 나누어 처리하거나, 여러 작업을 각각 다른 CPU가 처리.
SMP(대칭 멀티프로세싱)와 AMP(비대칭 멀티프로세싱)가 존재.
비교
특성
멀티태스킹
멀티프로세싱
CPU 수
단일 CPU
여러 CPU 또는 코어
병렬 처리
시분할 방식(동시성이지만 병렬은 아님)
진정한 병렬 처리 가능
복잡성
상대적으로 간단
하드웨어 및 소프트웨어 복잡도 증가
사용 사례
데스크톱 OS(Windows, Linux, macOS 등)
서버, 고성능 컴퓨팅(HPC), 데이터 센터
정리
시분할 시스템
: CPU 시간을 분할하여 여러 작업이 동시에 실행되는 것처럼 보이게 함.
멀티태스킹
: 단일 CPU에서 여러 작업을 동시에 실행.
멀티프로그래밍
: 여러 프로그램을 메모리에 로드하여 CPU 자원을 효율적으로 활용.
wait
: 특정 작업이나 이벤트를 기다리는 프로세스의 상태.
멀티태스킹 vs. 멀티프로세싱
: 전자는 단일 CPU를 기반으로 한 동시성, 후자는 여러 CPU를 이용한 병렬 처리.
Faithful Dev
Turning Vision into Reality.
팔로우
이전 포스트
운영체제 | 프로세스
다음 포스트
운영체제 | 스케줄링 알고리즘
0개의 댓글
댓글 작성