본문 바로가기

반응형

Computer Science/OS

(7)
[OS] Memory Management 1. 메모리 구조 메모리는 CPU 자원만큼 컴퓨터 사용에 중요한 자원 중 하나이다. 그렇기 때문에 메모리는 접근하는데 필요한 시간을 최소화 하는 방향으로 발전해왔다. 현재의 메모리 구조는 다음과 같다. - Secondary Memory (External Memory): Magnetic Disk, Optical Disk, Magnetic Tape으로 구성되어 있으며 I/O 모듈에 의해 접근 가능한 저장 장치이다. - Primary Memory (Internal Memory): Main Memory, Cache memory, CPU registers 로 구성되어 있으며 Processor에서 접근이 가능한 저장 장치이다. 2. Memory 메모리는 기본적으로 address 와 data 로 구성되어 있다. CP..
[OS] Thread & Multithreading 1. Process vs Thread - Process 프로세스는 실행 중인 프로그램을 의미한다. 프로세스에 대한 정보를 가지고 있는 Process Control Block에 의해 운영된다. 프로세스는 child process라고 불리는 다른 프로세스들을 생성할 수 있다. 프로세스는 제거되는데 더 많은 시간이 걸리며, 독립된 자원을 할당받기 때문에 다른 프로세스와 자원을 공유하지 않는다. 프로세스는 new, ready, running, waiting, terminated, suspended의 상태를 가진다. - Thread 스레드는 프로세스의 일부분으로 프로세스에서 동작하는 실행 단위이다. 한 프로세스는 여러 스레드를 가질 수 있다. 스레드는 running, ready, blocked 3개의 상태를 가진..
[OS] Process Synchronization 1. Process Synchronization 동기화를 기준으로 프로세스들은 다음 두가지 종류로 구분된다. - Independent Process: 한 프로세스의 실행이 다른 프로세스의 실행에 영향을 주지 않는 프로세스 - Cooperative Process: 한 프로세스의 실행이 다른 프로세스의 실행에 영향을 주는 프로세스 Cooperative process의 경우 프로세스들이 서로의 작업을 수행할 때 영향을 주기 때문에 하나의 공유 메모리나 다른 프로세스에 접근하는 경우 매우 조심해야 한다. 이러한 프로세스 사이에 동기화를 하는 것을 프로세스 동기화 (Process Synchronization) 이라고 한다. 현재는 대부분 스레드 기준으로 스위칭이 일어나기 때문에 Thread synchronizat..
[OS] CPU scheduling CPU scheduling은 ready queue에 있는 프로세스 중 실행할 프로세스를 선택하는 방식을 의미한다. 각 알고리즘에 따라서 프로세스를 선택하여 ready 상태에 있는 프로세스를 running 상태로 변경한다. 1. Preemptive vs Non-preemptive (선점식 vs 비선점식) - Preemptive: 선점식 스케줄링은 CPU가 이미 어떤 프로세스를 실행하고 있는 중에 이를 중단시키고 새로운 프로세스를 할당하는 방식이다. - Non-preemptive: 비선점식 스케줄링은 CPU가 이미 프로세스를 수행 중인 경우, 프로세스가 끝나거나 IO를 만나게 될 때까지 프로세스 변경을 수행하지 못한다. 2. Scheduling Algorithms - FCFS (First Come First..
[OS] Process Scheduling 1. Process Scheduling 프로세스 스케줄링은 프로세스 매니저가 running process를 CPU에서 제거하고 프로세스 선택 기준, 전략에 따라 다른 프로세스를 선택하는 작업을 의미한다. 프로세스를 스케줄링이 수행되는 queue에는 세가지 종류가 있다. 다음 큐에 있는 프로세스들 중 하나를 선택하여 상태를 변경하는 작업을 수행한다. Job Queue: 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue: 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합 (ready 상태) Device Queue: Device I/O 작업을 대기하고 있는 프로세스의 집합 (waiting 상태) 2. 스케줄러의 종류 - Long-term scheduler or jo..
[OS] Process Management 1. Process Process는 실행 중에 있는 프로그램을 의미한다. 우리가 작성한 소스 파일이나 이를 빌드한 바이너리 코드는 모두 프로그램이다. 이런 프로그램이 실행되면 프로세스가 된다. 프로세스는 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있다. OS로부터 주소 공간, 파일, 메모리 등을 할당 받으며, 이것들을 총칭하여 프로세스라고 한다. 구체적으로 함수의 매개변수, 복귀 주소와 로컬 변수와 같은 임시 자료를 갖는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 heap을 포함한다. 2. 프로세스 메모리 구조 1) Stack 프로그램이 자동으로 사용하는 임시 메모리 영역 지역변수, 매개변수, 리턴 값 등 잠..
[OS] Operating System (운영체제) 1. OS (Operating System) OS, 운영체제는 사용자와 컴퓨터 하드웨어 사이에서 동작한다. 운영체제의 목적은 컴퓨터를 효율적으로 관리하고 제어하며 작동하는 것이다. 운영 체제는 사용자와 컴퓨터 하드웨어 간의 인터페이스 역할과 응용 프로그램의 실행 및 제어를 하기 위해 만들어진 시스템 소프트웨어를 의미한다. 다른 의미로는 항상 컴퓨터에서 실행되는 프로그램을 의미하기도 한다. (kernel) 운영 체제는 사용자와 하드웨어 간의 인터페이스 역할을 하는데 입출력과 메모리 할당과 같은 하드웨어 기능에 대해서 응용 프로그램과 하드웨어 사이의 중재 역할을 하여 자원 할당 및 프로그램들의 실행을 제어한다. 컴퓨터 전체를 관리 및 제어하기 때문에 컴퓨터를 사용하기 위해서 먼저 설치해야하는 기본 소프트웨어..

반응형