OS 9

스레드

- 오늘날의 운영체제는 프로세스의 낭비 요소를 제거하고, 프로세스 작업의 유연성을 얻기 위해 멀티스레드를 사용함 1. 스레드란? - 프로세스가 생성되면 CPU 스케줄러는 프로세스가 해야 할 일을 CPU에 전달하고, 실제 작업은 CPU가 수행함 -> 이 때, CPU 스케줄러가 CPU에 전달하는 일 하나가 스레드임 - 운영체제 입장에서 작업 단위는 프로세스이고, CPU 입장에서의 작업 단위는 스레드임 2. 스레드 관련 용어 (1) 멀티 스레드 - 멀티 스레드는 프로세스 내 작업을 여러 개의 스레드로 분할함으로써 작업의 부담을 줄이는 프로세스 운영 기법임 (2) 멀티 태스킹 - 멀티 태스킹은 운영체제가 CPU에 작업을 줄 때, 시간을 잘게 나누어 배분하는 기법임 -> 이렇게 여러 스레드에 시간을 잘게 나누어 ..

OS 2022.04.30

프로세스의 연산

1. 프로세스의 구조 - 프로세스는 코드 영역, 데이터 영역, 스택 영역으로 구성됨 (1) 코드 영역 - 코드 영역은 프로그램의 본문이 기술된 곳으로 텍스트 영역(text area)라고도 함 (2) 데이터 영역 - 데이터 영역은 코드가 실행되면서 사용하는 변수나 파일 등의 각종 데이터를 모아놓은 곳임 (3) 스택 영역 - 스택 영역은 운영체제가 프로세스를 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳임 2. 프로세스의 생성과 복사 - 프로세스는 프로그램을 실행할 때 새로 생성됨 -> 사용자가 프로그램을 실행하면 운영체제는 프로그램을 메모리로 가져와 코드 영역에 넣고 프로세스 제어 블록을 생성함 -> 그리고 메모리에 데이터 영역과 스택 영역을 확보한 후 프로세스를 실행함 - 프로세스를 새로 생성하는..

OS 2022.04.30

프로세스 제어 블록과 문맥 교환

1. 프로세스 제어 블록 - 프로세스 제어 블록은 프로세스를 실행하는데 필요한 중요한 정보를 보관하는 자료구조임 - 프로세스 제어 블록에 저장되는 정보는 다음과 같은 것들이 있음 (1) 포인터 - 프로세스 제어 블록의 첫 번째 블록에는 포인터가 저장됨 -> 프로세스 제어 블록을 연결하여 준비 상태나 대기 상태의 큐를 구현할 때 포인터를 사용함 (2) 프로세스 상태 - 프로세스 상태에는 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등이 있음 (3) 프로세스 구분자 - 운영체제 내에 있는 여러 프로세스를 구별하기 위한 구분자를 저장함 (4) 프로그램 카운터 - 다음에 실행될 명령어의 위치를 가리키는 프로그램 카운터의 값을 저장함 이외에 프로세스 우선순위, 각종 레지스터 정보, 메모리 관리 정보, 할당..

OS 2022.04.30

프로세스 개요

1. 프로세스란? - 프로그램은 저장장치에 저장되어 있는 정적인 상태이고, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태임 - 일괄 작업 방식은 한 번에 하나의 작업만 처리하는 것임 -> 반면, 시분할 방식은 CPU가 시간을 쪼개어 여러 프로세스에 적당히 배분함으로써 동시에 실행하는 것처럼 느껴짐 - 현대의 운영체제는 시분할 방식을 기본으로 사용하기 때문에 프로세스가 여러 상태를 오가며 실행됨 - 프로세스 제어 블록(Process Control Block)은 프로그램이 프로세스가 될 때 생성됨 -> 프로세스 제어 블록은 프로세스 구분자(Process Identification), 메모리 관련 정보, 프로그램 카운터와 각종 레지스터 같은 중간값을 관리함 2. 프로세스의 상태 - 프로세스에는 네 가지 ..

OS 2022.04.28

병렬 처리

- CPU의 성능을 향상하는 가장 좋은 방법은 CPU의 클록을 높이거나 캐시의 크기를 늘리는 것임 -> 그러나 CPU의 클록을 높이면 발열 문제가 있기 때문에 현재의 기술로는 5GHz가 넘는 CPU를 개발하기 어려움 -> 캐시의 크기를 늘리는 것도 비용 문제가 발목을 잡아 쉽지 않음 - 따라서 CPU 개발사들은 CPU의 핵심 기능을 가진 코어를 여러 개 만들거나, 동시에 실행 가능한 명령의 개수를 늘리는 방법을 사용함 1. 병렬 처리의 개념 - 병렬 처리는 동시에 여러 개의 명령을 처리하여 작업의 능률을 올리는 방식을 말함 -> 요즘 컴퓨터용 CPU나 스마트폰용 CPU의 사양을 보면 듀얼코어, 쿼드코어라고 쓰여 있는데, 이는 CPU의 주요 기능을 담당하는 코어가 1개가 아니라 2개, 4개라는 뜻임 - 여..

OS 2022.04.28

컴퓨터 성능 향상 기술(2) - 저장 장치의 계층 구조, 인터럽트, 직접 메모리 접근

3. 저장 장치의 계층 구조 - 저장 장치의 계층 구조는 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에 두고, 값이 싸고 용량이 큰 저장장치를 반대쪽에 배치하여 적당한 가격으로 빠른 속도와 큰 용량을 동시에 얻는 방법임 - 저장 장치의 계층 구조에서는 CPU와 가까운 쪽에 레지스터나 캐시를 배치하여 CPU가 작업을 빨리 진행할 수 있게 함 -> 또한 메모리에서 작업한 내용을 하드디스크와 같이 저렴하고 용량이 큰 저장장치에 영구적으로 저장할 수 있게 함 - 한편, 저장장치의 계층 구조는 중복되는 데이터의 일관성을 유지하는 것이 문제임 -> 예를 들어, CPU가 캐시에 저장된 데이터를 변경하면 메모리의 해당 주소에 있는 데이터도 갱신되어야 하는데, 변경된 내용을 즉시 반영하지 않고 일정 기간 모았다..

OS 2022.04.28

컴퓨터 성능 향상 기술(1) - 버퍼와 캐시

왜 컴퓨터 성능 향상 기술이 필요한가? - 현대 컴퓨터 구조의 가장 큰 문제는 CPU와 메모리, 주변장치의 작업 속도가 다르다는 것임 -> 메인보드 내 메모리와 주변장치는 시스템 버스로 연결되어 있고, CPU 내 레지스터, 산술논리 연산장치, 제어장치는 CPU 내부 버스로 연결되어 있음 -> 이 때, CPU의 속도는 CPU 내부 버스의 속도와 같고, 메모리의 속도는 시스템 버스의 속도와 같음 -> CPU 내부 버스의 속도는 시스템 버스의 속도보다 빠르기 때문에, 메모리를 비롯한 주변장치의 속도가 CPU의 속도를 따라가지 못함 -> CPU에 비하면 메모리가 느린 것은 물론이고, 프로그램과 데이터를 보관하는 하드디스크의 속도는 더욱 느림 -> 따라서 장치 간 속도 차이를 개선하고, 시스템의 작업 속도를 올리..

OS 2022.04.28

CPU와 메모리

1. CPU의 구성과 동작 - CPU는 명령어를 해석하여 실행하는 장치임 -> CPU는 산술논리 연산장치, 제어장치, 레지스터로 구성되며, 이것들의 협업으로 작업을 처리함 (1) 산술논리 연산장치 - CPU에서 데이터를 연산하는 장치가 산술논리 연산장치(Arithmetic and Logic Unit, ALU)임 -> 산술논리 연산장치는 데이터의 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 AND, OR 같은 논리 연산을 수행함 (2) 제어장치 - CPU에서 작업을 지시하는 부분을 제어장치(Control Unit)라고 함 (3) 레지스터 - CPU 내에 데이터를 임시로 보관하는 곳을 레지스터(register)라고 함 - 레지스터의 종류 CPU는 필요한 데이터를 메모리에서 가져와 레지스터에 저장하고, 산술..

OS 2022.04.28

컴퓨터의 기본 구성

1) 하드웨어의 구성 - 컴퓨터는 중앙처리장치(CPU), 메인메모리, 입력장치, 출력장치, 저장장치로 구성됨 -> 이 중에서 중앙처리장치와 메인메모리는 필수 장치로 분류됨 -> 나머지는 주변 장치로 분류됨 - 메인 메모리는 제1저장장치, 하드 디스크나 USB 메모리는 제2저장장치 또는 보조저장장치라고 부름 - CPU는 명령어를 해석하여 실행하는 장치로, 인간으로 치면 두뇌에 해당함 -> 메모리는 작업에 필요한 프로그램과 데이터를 저장하는 장소로, 바이트 단위로 분할되어 있으며, 분할 공간마다 주소로 구분됨 - 메모리는 전자의 이동으로 데이터를 처리하지만, 하드디스크나 CD와 같은 저장장치는 구동장치가 있는 기계이므로 속도가 느림 -> 이렇게 느린 저장장치를 사용하는 이유는 저장 용량에 비해 가격이 싸기 ..

OS 2022.04.28