공든탑앱 열기

운영체제와 프로세스

정보처리기사 · 운영체제와 네트워크 기초 · 약 14분

쉽게 말하면

운영체제는 컴퓨터의 관리자예요. CPU, 메모리, 파일 같은 자원을 프로그램들에 나눠 주고 사용자가 편하게 쓰게 해 줘요. 실행 중인 프로그램을 프로세스라 하는데, 프로세스는 CPU를 기다리는 준비, CPU를 쓰는 실행, 입출력 같은 일을 기다리는 대기 상태를 오가요. 운영체제는 각 프로세스의 정보를 PCB라는 카드에 적어 관리해요.

시험용 정의

운영체제는 하드웨어 자원을 관리하고 사용자에게 편리한 환경을 주는 시스템 소프트웨어다. 성능 평가 기준은 처리 능력(일정 시간에 처리하는 일의 양), 반환 시간(작업 의뢰부터 결과까지, 짧을수록 좋음), 사용 가능도(필요할 때 바로 쓸 수 있는 정도), 신뢰도(오류 없이 해결하는 정도)다. 프로세스는 실행 중인 프로그램이며, 운영체제는 프로세스 정보(PID, 상태, 프로그램 카운터, 레지스터, 우선순위, 메모리 정보)를 PCB(Process Control Block)에 저장한다. 상태는 생성 → 준비 → 실행 → 대기 → 종료이며 전이는 디스패치, 타임 런아웃, 블록, 웨이크업이다. 스레드는 프로세스 안의 실행 단위로, 같은 프로세스의 스레드는 메모리를 공유해 생성·전환 비용이 적다. 문맥 교환은 CPU를 다른 프로세스에 넘길 때 상태를 PCB에 저장하고 새 상태를 불러오는 것이다.

비유로 이해하기

은행 창구다. 번호표를 뽑고 기다리는 손님(준비), 창구에서 업무 중인 손님(실행), 서류를 가지러 간 손님(대기). 직원은 손님마다 상담 카드(PCB)를 써 두어 다시 오면 이어서 처리한다.

자세히

그림으로 보기: 프로세스 상태 전이

  1. 생성작업이 들어옴
  2. 준비CPU 할당을 기다림
  3. 실행디스패치로 CPU 받음, 할당 시간이 끝나면 준비로(타임아웃)
  4. 대기입출력 등 사건을 기다림, 끝나면 준비로(웨이크업)
  5. 종료실행을 마침

먼저 알아 둘 말

말뜻
커널운영체제의 핵심. 프로세스·메모리·파일·입출력 관리
셸사용자 명령을 해석해 커널에 전달하는 명령어 해석기
PCB운영체제가 프로세스마다 정보를 담아 두는 블록
문맥 교환실행 중인 프로세스를 바꿀 때 상태를 저장·복원하는 일
스레드프로세스 안에서 실행되는 흐름 단위. 경량 프로세스

프로세스 상태 전이

전이변화원인
디스패치준비 → 실행스케줄러가 CPU 할당
타임 런아웃실행 → 준비할당 시간이 끝남
블록실행 → 대기입출력 등 사건을 기다림
웨이크업대기 → 준비기다리던 사건 완료

PCB에 저장하는 정보

프로세스 식별자(PID), 현재 상태, 프로그램 카운터(다음 실행할 명령 주소), CPU 레지스터, 스케줄링·우선순위 정보, 메모리 관리 정보, 입출력 상태, 계정 정보, 부모·자식 프로세스 포인터

UNIX·Linux

구분내용
구성커널(핵심, 메모리 상주), 셸(명령 해석기), 유틸리티
특징다중 사용자·다중 작업, 이식성 높음(대부분 C로 작성), 계층(트리) 파일 시스템
프로세스 명령fork(새 프로세스 생성), exec(다른 프로그램 실행), ps(프로세스 보기), kill(종료)
파일 명령ls, cp, mv, rm, chmod(권한 변경), chown(소유자 변경), cat

기출에서 더 나온 것

말뜻
사용자 수준 스레드커널 모드로 바꾸지 않고 스레드를 바꾸므로 오버헤드가 적다
세마포어P(wait)·V(signal) 연산으로 임계 구역 진입을 제어하는 상호 배제 기법
파일 디스크립터파일을 관리하려고 시스템이 가진 정보. 보통 보조기억장치에 있다가 파일을 열면 주기억장치로 오며, 사용자가 직접 참조할 수 없다
uname리눅스 커널 버전 등 시스템 정보를 보여 주는 명령
셸 스크립트 반복문for·while·until·select (repeat_do는 없음)
NTFSFAT보다 보안·대용량·압축·안정성이 좋다. 작은 볼륨에서는 약간 느릴 수 있다
umask새 파일 기본 권한 666에서 빼는 값. 644가 되려면 022
배치 프로그램 필수 요소대용량 데이터, 자동화, 견고성, 안정성(문제 추적), 성능(정해진 시간 안에 처리)
환경 변수 보기env·printenv는 전체 목록, setenv는 C 셸에서 설정, export는 배시에서 환경 변수로 내보내고 단독으로 쓰면 목록을 보여 준다

시험에 이렇게 나와요

확인 문제

Q1. 준비 상태의 프로세스 중 하나를 골라 CPU를 할당해 실행 상태로 바꾸는 것은?

  1. 디스패치
  2. 웨이크업
  3. 블록
  4. 타임 런아웃
정답 보기

1번 디스패치

디스패치: 준비 → 실행. 타임 런아웃: 실행 → 준비(시간 할당량 끝). 블록: 실행 → 대기(입출력 요청). 웨이크업: 대기 → 준비(입출력 완료).

Q2. 운영체제의 성능 평가 기준 중 '작업을 의뢰한 뒤 결과를 받을 때까지 걸린 시간'은?

  1. 신뢰도
  2. 반환 시간
  3. 사용 가능도
  4. 처리 능력
정답 보기

2번 반환 시간

반환 시간(Turn Around Time)은 짧을수록 좋다.

Q3. 실행 중인 프로세스가 입출력을 요청해 대기 상태로 바뀌는 전이는?

  1. 블록
  2. 타임 런아웃
  3. 웨이크업
  4. 디스패치
정답 보기

1번 블록

블록이다. 실행 → 대기로 바뀐다. 디스패치는 준비 → 실행, 웨이크업은 대기 → 준비, 타임 런아웃은 실행 → 준비다.

Q4. 스레드에 대한 설명으로 틀린 것은?

  1. 프로세스 안의 실행 단위다
  2. 프로세스보다 생성과 전환 비용이 크다
  3. 같은 프로세스의 스레드는 메모리를 공유한다
  4. 경량 프로세스라고도 한다
정답 보기

2번 프로세스보다 생성과 전환 비용이 크다

스레드는 프로세스보다 생성과 전환 비용이 적다. 같은 프로세스의 자원을 함께 쓰기 때문이다. 그래서 경량 프로세스라고 부른다.

Q5. UNIX에서 사용자 명령을 해석해 커널에 전달하는 것은?

  1. 로더
  2. 커널
  3. 셸
  4. 유틸리티
정답 보기

3번 셸

셸(Shell)은 명령어 해석기다.

헷갈리기 쉬운 O·X

웨이크업은 대기 상태의 프로세스가 사건이 끝나 준비 상태로 바뀌는 것이다.

정답 보기

O

PCB는 사용자가 직접 만들어 프로세스에 붙이는 문서다.

정답 보기

X 운영체제가 프로세스마다 만들어 관리한다.

UNIX 커널은 대부분 어셈블리어로만 작성되어 이식성이 낮다.

정답 보기

X 대부분 C로 작성되어 이식성이 높다.

함께 보면 좋은 개념