💻CS/OS

    [OS] 메모리 구조

    메모리 구조 우리가 흔히 사용하는 프로그램들을 실행하려면 프로그램이 메모리(RAM) 위에 올라가야 한다. 또한 프로그램 내의 여러 변수를 저장하기 위한 메모리 공간이 필요한데 이 부분을 오늘 다뤄볼 것이다. 통상적으로 알고 있는 메모리 구조의 네 가지인, 코드(Code), 데이터(Data), 힙(Heap), 스택(Stack)에 대해서 하나하나 알아보자. Code 말 그대로 코드 영역은, 실행할 프로그램의 코드가 저장되는 장소이다. 텍스트 영역이라고도 하나, 주로 코드 영역이라고 부른다. 코드는 우리가 읽을 수 있는 형태가 아닌, 기계어로 저장된다. 또한 프로그램 실행에 필요한 코드들이기 때문에 프로그램 실행 ~ 끝까지 메모리에 존재한다. 그리고 코드 영역은 컴파일 타임에 결정되어 저장된다. 또한 프로그램..

    [OS] 6. Process Scheduling 3

    이전의 FCFS, RR은 공평성에 초점을 두고 봤으나 이번에는 시스템적으로 효율성/성능에 초점을 둔 방법들을 보자. SPN (Shortest-Process-Next) Non-preemptive scheduling 스케줄링 기준 실행시간 (burst time 기준) Burst time이 가장 작은 프로세스를 먼저 처리해준다. (즉, 일찍 끝나는 것 부터 먼저 처리) SJF(Shortest Job First) scheduling 장점 평균 대기시간(WT: Waiting Time)을 최소화 할 수 있다. 시스템 내 프로세스 수 최소화 스케줄링 부하 감소, 메모리 절약 >> 시스템 효율 향상 많은 프로세스들에게 빠른 응답 시간 제공 단점 Starvation(무한대기) 현상 발생 BT가 긴 프로세스는 계속 자원을..

    [OS] 5. Process Scheduling 2

    기본적인 스케줄링 알고리즘 중에서 FCFS와 RR에 대해서 먼저 알아볼 것이다. FCFS (First-Come-First-Service) 말 그대로 "선착순" 알고리즘이라고 볼 수 있다. 먼저 들어오는 프로세스에 먼저 프로세서를 할당해주겠다는 것이다. Non-preemptive scheduling 스케줄링 기준 도착 시간을 기준으로 스케줄링한다 ready-queue에 먼저 도착한 프로세스를 먼저 처리 자원을 효율적으로 사용 가능 스케줄링 overhead가 적다. 프로세서(cpu)가 계속 일할 수 있다. Batch System에 적합, interactive system에 부적합 단점 Convoy effect 하나의 수행시간이 긴 프로세스에 의해 다른 프로세스들이 긴 대기시간을 갖게 되는 현상 (대기 시간 ..

    [OS] 5. Process Scheduling 1

    왜 프로세스 스케줄링을 해야할까? 하나의 프로세스가 아닌 다중 프로세스를 운영하게 될 경우, 프로세스들의 우선 순위를 조정해주는 일은 매우 중요하다. 중요한 일이라면 우선순위를 높여 자원을 할당해주어 먼저 처리해야하고, 상대적으로 우선순위가 낮은 프로세스는 후순위로 처리하여 효율적/효과적으로 업무를 수행할 필요가 있다. 즉, 프로세스 스케줄링은 다중 프로그래밍(프로세스가 여러 개) 환경에서 필요한 것이다. 스케줄링 : 자원을 할당할 프로세스를 선택하는 행위 자원을 관리하는데에는 두 가지 방법이 있다. 시간 분할(time sharing) 관리 하나의 자원을 여러 스레드들이 번갈아가며 사용 (ex. CPU(프로세서)) 프로세스 스케줄링 : 프로세서 사용시간을 프로세스들에게 분배. ex. 1 ~ 10초 까지는..

    [OS] 4. Thread Management

    이전에 프로세스에 대해 살펴보면서, Context Switch의 비용이 만만치 않기에 이를 줄이는 것이 중요하다고 했었다. 이에 등장했던 개념이 thread였는데, 이번에 한 번 살펴보자! 프로세스(Process)와 스레드(Thread) 프로세스는 자원을 할당받고, 자원을 제어하여 목적을 달성한다. 여기서 제어만 따로 떼어둔 것을 스레드라고 한다. 하나의 프로세스 안에 여러 스레드가 있을 수 있다(제어가 여러 개 있는 것) Thread란? LWP(Light Weight Process)라고도 한다 프로세서 활용의 기본 단위이다. 구성요소 Thread ID Register set (PC(program counter), SP(stack point)) Stack (지역 데이터) 프로세스의 코드, 데이터, 힙의 ..

    [OS] 3. Process Management

    프로세스란? 작업(Job) / 프로그램(Program) 실행할 프로그램 + 데이터 시스템에 실행 요청 전의 상태 (아직 디스크에 있는 상태) 프로세스(Process) 실행을 위해 시스템(커널)에 등록된 작업 (메모리를 할당 받았을 때 = 실행중인 프로그램) 시스템 성능 향상을 위해 커널에 의해 관리된다. 자원의 개념 커널의 관리 하에 프로세스에게 할당/반납되는 수동적인 객체를 의미한다. 자원은 H/W, S/W로 분류될 수 있다. H/W : 프로세서, 메모리, 디스크, 모니터 S/W : 메시지, 신호, 파일, 응용 프로그램 Process Control Block (PCB) 말 그대로 프로세스를 제어하는데 필요한 정보를 모아둔 블록을 의미한다. OS가 프로세스를 관리하기 위해 필요한 정보를 저장하는데 주 역..