블로그

야나

[그림으로 쉽게 배우는 운영체제] 운영체제 프로세스 쓰레드 CPU 스케줄링(1)

* 해당 포스팅은 그림으로 쉽게 배우는 운영체제 - by 감자 멘토님 강의를 수강후 작성하는 글 입니다. KEYWORD- 운영체제: 하드웨어 자원을 관리하고 사용자와 시스템 간 인터페이스를 제공하는 소프트웨어.- 프로세스: 실행 중인 프로그램으로, CPU에서 작업이 진행되는 단위.- 프로그램: 실행 가능하지만 실행되지 않은 상태의 명령어 집합.- 쓰레드: 프로세스 내에서 실행되는 작은 작업 단위.- CPU: 명령어를 해석하고 연산을 수행하는 컴퓨터의 중앙 처리 장치.- 메모리: 데이터를 저장하고 프로세스가 작업을 수행할 때 사용되는 공간.- 애니악: 최초의 범용 전자 디지털 컴퓨터.- 펀치카드: 데이터를 입력하기 위해 구멍을 뚫어 정보를 표현하던 초기 입력 장치.- I/O 디바이스 컨트롤러: 입출력 장치와 시스템 간의 통신을 제어하는 장치.- 싱글스트림 배치시스템: 작업을 순차적으로 처리하는 초기 컴퓨터 운영 방식.- 시분할 시스템: 여러 사용자가 시스템을 동시에 사용할 수 있도록 자원을 할당하는 시스템.- 파일시스템: 데이터를 파일 형태로 저장하고 관리하는 시스템.- 유닉스: 멀티태스킹, 멀티유저 환경을 지원하는 운영체제.- 유니프로그래밍: 한 번에 하나의 프로그램만 실행하는 방식.- 멀티프로그래밍: 메모리에 여러 프로그램을 동시에 올려서 CPU가 번갈아 가며 처리하는 방식.- 멀티프로세싱: 여러 CPU가 동시에 여러 프로세스를 처리하는 방식.- 시분할처리: CPU 시간을 여러 작업에 나누어 사용하는 처리 방식.- 스와핑: 메모리에서 프로세스를 내보내고 다시 불러오는 과정.- 베이스 레지스터: 프로세스의 메모리 시작 주소를 저장하는 레지스터.- 커널: 운영체제의 핵심 부분으로 하드웨어와 소프트웨어 자원을 관리함.- 인터페이스: 시스템과 사용자 또는 다른 시스템 간의 상호작용을 위한 접점.- GUI: 그래픽을 통해 사용자와 컴퓨터가 상호작용하는 방식.- CLI: 명령어를 통해 사용자와 컴퓨터가 상호작용하는 방식.- 시스템 콜: 응용 프로그램이 운영체제의 기능을 요청할 때 사용하는 함수.- 드라이버: 하드웨어와 운영체제가 통신할 수 있도록 돕는 소프트웨어.- 그래픽카드: 그래픽 처리와 관련된 연산을 담당하는 하드웨어.- 폰노이만 구조: 프로그램과 데이터를 메모리에 저장하고 처리하는 컴퓨터 구조.- 메인보드: CPU, 메모리, I/O 장치가 연결된 컴퓨터의 중심 회로 기판.- 제어장치: CPU 내부에서 명령어의 실행을 제어하는 장치.- 산술논리 연산장치: CPU 내부에서 산술 및 논리 연산을 수행하는 장치.- 레지스터: CPU 내에서 데이터와 명령어를 일시적으로 저장하는 고속 메모리.- 프로그램 카운터: 다음에 실행할 명령어의 주소를 저장하는 레지스터.- 메모리 주소 레지스터: 메모리 내 데이터의 주소를 저장하는 레지스터.- 메모리 버퍼 레지스터: 메모리에서 읽거나 쓸 데이터를 임시 저장하는 레지스터.- 명령어 레지스터: 현재 실행 중인 명령어를 저장하는 레지스터.- RAM: 휘발성 메모리로, 데이터를 일시적으로 저장함.- ROM: 비휘발성 메모리로, 데이터를 영구적으로 저장함.- 바이오스: 컴퓨터 부팅 시 하드웨어 초기화와 운영체제 로딩을 관리하는 펌웨어.- 폴링방식: CPU가 장치의 상태를 주기적으로 확인하는 방식.- 인터럽트: 외부 신호로 CPU의 작업을 중단하고 다른 작업을 처리하게 하는 신호.- 인터럽트 서비스 루틴: 인터럽트 발생 시 실행되는 코드.- Code 영역: 프로그램의 명령어가 저장되는 메모리 영역.- Data 영역: 초기화된 전역 변수와 정적 변수가 저장되는 메모리 영역.- Heap 영역: 동적으로 할당된 메모리 공간.- Stack 영역: 함수 호출 시 생성되는 지역 변수와 함수 정보가 저장되는 메모리 영역.- 컴파일: 고급 프로그래밍 언어를 기계어로 번역하는 과정.- 어셈블리어: 기계어와 1:1 대응하는 저급 프로그래밍 언어.- 기계어: CPU가 직접 실행할 수 있는 이진 코드.- 링커: 여러 목적 파일을 결합해 실행 가능한 프로그램으로 만드는 도구.- 연결리스트: 노드가 서로 연결된 데이터 구조로, 각 노드는 데이터와 다음 노드의 참조를 포함함.- PCB: 프로세스 제어 블록으로, 프로세스에 대한 정보를 저장하는 데이터 구조.- 포인터: 메모리 주소를 가리키는 변수.- 컨텍스트 스위칭: CPU가 한 프로세스에서 다른 프로세스로 전환할 때 발생하는 작업.- 프로그램 카운터: 현재 실행 중인 명령어의 다음 명령어 주소를 가리키는 레지스터.- 부모프로세스: 다른 프로세스를 생성하는 프로세스.- 자식프로세스: 부모 프로세스에 의해 생성된 프로세스.- fork 함수: 새로운 프로세스를 생성하는 시스템 호출.- exit 함수: 프로세스가 실행을 종료할 때 호출하는 함수.- 좀비 프로세스: 실행이 종료되었으나 부모 프로세스가 회수하지 않은 프로세스.- IPC: 프로세스 간 통신으로, 프로세스 간 데이터를 주고받는 방법.- TCB: 쓰레드 제어 블록으로, 쓰레드의 실행 상태를 저장하는 데이터 구조.- 프로세스와 쓰레드 차이: 프로세스는 독립된 메모리 공간을 갖고, 쓰레드는 프로세스 내 자원을 공유함.- CPU Burst: 프로세스가 CPU를 사용하는 시간.- I/O Burst: 프로세스가 I/O 작업을 수행하는 시간.- 큐 자료구조(Queue): FIFO 방식으로 데이터를 저장하고 처리하는 자료구조.- CPU 스케줄링: 여러 프로세스 간에 CPU 시간을 배분하는 방식.- 생성상태: 프로세스가 생성된 초기 상태.- 준비상태: 프로세스가 실행 준비가 된 상태.- 대기상태: 프로세스가 입출력 작업을 기다리는 상태.- 실행상태: 프로세스가 CPU에서 실행 중인 상태.- 완료상태: 프로세스가 실행을 완료한 상태.- 스케줄러: CPU 자원을 프로세스에 할당하는 운영체제의 구성 요소.- 오버헤드: 시스템 자원 사용 시 발생하는 추가 비용.- 스케줄링 알고리즘: CPU 시간을 프로세스에 할당하는 방법을 결정하는 알고리즘.- FIFO (First In, First Out): 먼저 들어온 데이터가 먼저 나가는 방식으로, 큐 자료구조에서 사용하는 원칙.

시스템 · 운영체제운영체제프로세스쓰레드CPU

운영체제(OS)와 컴퓨터 시스템 2 - CPU

CPU os가 프로그램을 실행하는 구조 os가 프로그램을 실행  하드디스크 안의 프로그램을 메모리로 읽어들인 후 실행 메모리에 할당된 프로그램은 '프로세스'라고 일컬음   프로세스 상태 : 실행 상태, 실행 가능 상태, 대기 상태       cpu에 할당되어 실행 중인 상태가 실행 상태. 우선순위가 높은 프로세스에 의해 인터럽트(중단) 처리되기도 함.   멀티태스킹 태스트(Task) : os가 cpu에 의뢰하는 작업 단위 멀티태스킹 : 여러 개의 태스크를 동시에 처리하는 행위    스케줄링을 통해 순서대로 처리하는 것; 빠른 전환으로 인해 동시에 수행되는 것처럼 보임   프로세스가 메모리와 같은 공유 자원을 이용할 때는 영향이 가지 않도록 잠금(Lock)이 일어나기도 함. 이 경우, 양 쪽 프로세스 모두 계속해서 대기 상태에 빠지는 데드락이 발생할 수 있음.   프로세스 제어 - 프로그램 상태어 (PSW : Program Status Word) cpu 속 레지스터에 인퍼럽트로 중단된 프로그램 상태나 연산의 종료 상태를 저장. - 프로세스 제어 블럭 (PCB : Process Control Block) 각 프로세스의 CPU상태(컨텍스트)나 프로세스의 상태를 제어해두는 메모리 영역. - 컨텍스트 스위치 인터럽트로 인해 프로세스를 전환할 때 os가 컨텍스트를 PCB에 저장하고 복원하는 것   프로세스 동기 배타 제어 : 처리가 끝날 때까지 하나의 프로세스에게 자원을 독점시켜 일관성을 유지. 세마포: 정해진 수 이상의 프로세스가 공유 자원에 동시 접근하지 않도록 카운터를 이용해 제어하는 장치. 무한정 대기 상태 데드락 피하기 -> 세마포와 뮤텍스(세마포 카운터 1) 여러 개의 프로세스에 의한 공유 자원 경쟁이 없어짐; 배타 제어   프로세스 통신 메시지 큐 : os의 메시지 기능을 통해 1대1 통신 파이프 : 여러 개의 프로세스 입출력을 연결하는 장치. 일방향.   공유 메모리와 스레드 공유 메모리 : 여러 개의 프로세스에서 공통으로 사용할 수 있는 메모리 영역. 스레드  : 프로세스 안의 프로그램 실행의 흐름.      스레드끼리는 같은 메모리 공간 참조 멀티 스레드 : 여러 스레드 동시 실행     <도서 정리> OS가 보이는 그림책 - ANK Co., Ltd. 저 | 이영란 역

OS시스템CPU도서

채널톡 아이콘