스레드와 병행성
·
개인공부/OS
스레드는 CPU 이용의 기본 단위이며, 스레드 ID, 프로그램 카운터, 레지스터 집합, 스택으로 구성됨.프로그램 카운터는 현재 실행 중인 명령 위치를 나타내는 값.레지스터 집합은 CPU 실행 상태를 저장하는 공간.스택은 함수 호출, 매개변수, 지역 데이터, 복귀 주소 등을 관리하는 구조.같은 프로세스에 속한 스레드들은 각자 프로그램 카운터, 레지스터 집합, 스택을 가짐.그러나 코드 영역, 데이터 영역, 열린 파일, 신호 같은 운영체제 자원은 같은 프로세스 안에서 공유함.전통적인 프로세스는 하나의 제어 스레드를 가지는 단일 스레드 프로세스.다중 스레드 프로세스는 하나의 프로세스 안에 여러 제어 스레드를 두어 동시에 하나 이상의 작업을 수행할 수 있는 구조.단일 스레드 프로세스는 하나의 실행 흐름만 가지는 ..
CPU 스케줄링
·
개인공부/OS
기본 개념단일 CPU 코어 시스템에서는 한 순간에 오직 하나의 프로세스만 실행될 수 있음.나머지 프로세스들은 CPU 코어가 가용 상태가 되어 다시 스케줄될 수 있을 때까지 기다려야 함.다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는 것.하나의 프로세스는 보통 어떤 입출력 요청이 완료되기를 기다려야 할 때까지 실행됨.단순한 컴퓨터 시스템에서는 프로세스가 입출력을 기다리는 동안 CPU가 유휴 상태가 됨.이 대기 시간 동안 CPU는 유용한 작업을 수행하지 못함.다중 프로그래밍에서는 여러 프로세스를 메모리 안에 유지하여 이러한 대기 시간을 생산적으로 활용함.어떤 프로세스가 대기해야 할 경우 운영체제는 그 프로세스로부터 CPU를 회수하고 다른 프로세스에 할당함.이 ..
프로세스
·
개인공부/OS
프로세스 개념운영체제에서 모든 CPU 활동을 어떻게 부를 것인가에 대한 문제가 존재.초기의 일괄처리 시스템에서는 작업이라는 용어가 사용됨.시분할 시스템에서는 사용자 프로그램 또는 태스크라는 용어가 사용됨.현대 운영체제에서는 실행 중인 프로그램을 프로세스라고 부름.프로세스는 현대 컴퓨팅 시스템에서 작업의 단위. 프로세스프로세스는 실행 중인 프로그램.프로세스의 현재 활동 상태는 프로그램 카운터 값과 프로세서 레지스터의 내용으로 표현됨.프로세스의 메모리 배치는 여러 섹션으로 구성.텍스트 섹션은 실행 코드가 들어 있는 영역.데이터 섹션은 전역 변수가 저장되는 영역.힙은 프로그램 실행 중 동적으로 할당되는 메모리 영역.스택은 함수 호출 시 임시 데이터가 저장되는 영역.스택에는 함수 매개변수, 복귀 주소, 지역 변..
운영체제 구조
·
개인공부/OS
운영체제 서비스운영체제 서비스는 사용자와 프로그램이 컴퓨터 시스템을 더 쉽고 효율적으로 사용할 수 있도록 운영체제가 제공하는 기능.운영체제는 사용자 프로그램과 하드웨어 사이에 위치하며,운영체제마다 제공하는 서비스는 다르지만 프로그램 실행에 필요한 여러 기능을 공통적으로 제공.운영체제 서비스는 크게 사용자에게 편의를 제공하는 기능과 시스템 자체의 효율적 운영을 위한 기능으로 구분.사용자에게 편의를 제공하는 서비스는 사용자 인터페이스, 프로그램 수행, 입출력 연산, 파일 시스템 조작, 통신, 오류 탐지.시스템의 효율적 운영을 위한 서비스는 자원 할당, 기록 관리, 보호와 보안이 있음. 사용자 인터페이스 사용자 인터페이스는 사용자가 운영체제와 상호작용할 수 있도록 제공되는 접점.사용자는 운영체제 내부 구조를..