컴퓨터는 데이터를 처리하는 물리적 장치 하드웨어와 작업을 지시하는 명령 프로그램 소프트웨어로 나뉜다.
운영체제는 하드웨어를 효율적으로 사용할 수 있게 관리하는 소프트웨어이다.
컴퓨터 시스템 전체를 제어한다.
ALU, CU, 레지스터로 이루어져 있다.
ALU(Arithmetic Operation): 산술, 논리 연산장치를 말한다. 사칙 연산을 수행하는 산술 연산과 참과 거짓을 판별하는 논리 연산을 수행한다.
CU(Control Unit): 제어장치이다. CPU 내부에서 일어나는 모든 작업을 통제하고 관리하며, 적절한 순서로 명령을 꺼내고 명령을 해석해서 해석에 따라 컴퓨터 시스템의 적절한 부분으로 제어신호를 전달한다.
레지스터 : CPU 내의 기억장치
운영체제 (OS) 는 이 컴퓨터 하드웨어들이 유기적이며 효율적이게 동작할 수 있도록 명령을 내리는 시스템 소프트웨어이다.
CPU는 2진수로 된 low level 명령을 알아 들을 수 있기 때문에 중간에 컴파일러가 필요하다.
운영체제가 관리해야할 가장 중요한 역할은 프로세스를 관리하는 것이다. CPU에서 여러개의 동시적으로 일어나거나 순차적으로 일어나는 작업들을 프로세스라 한다.
프로그램은 프로세스가 되기 전 상태의 자원이나 파일 묶음을 의미한다. (실행이 되었는가 안되었는가로 둘을 구분)
하나의 프로세스를 수행하기 위해 큰 작업을 작은 작업단위로 나누어 병렬적으로 처리하는데, 이 때 나누어진 작업단위를 스레드라고 한다.
프로세스 내에서 실제로 작업을 처리하는 주체이다.
프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위이다.
스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부가 된다.
하나의 프로세스가 두 개 이상의 스레드를 가지는 경우이며, 여러 작업을 여러 스레드를 사용하여 동시에 처리하는 것을 의미한다.
모든 스레드는 프로세스 내 메모리 영역의 내용을 공유한다.
메모리 자원을 아낄 수 있으며, 응답 시간이 빠르다는 장점이 있지만, 동기화 문제 (계속 변동되는 자원에 접근하게 되는 오류)가 발생할 수 있다.