본문 바로가기

취업준비15

메모리 관리 전략 각각의 프로세스 는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있다. 단지, 운영체제 만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않는다. Swapping : 메모리의 관리를 위해 사용되는 기법. 표준 Swapping 방식으로는 round-robin 과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치(e.g. 하드디스크)로 내보내고 다른 프로세스의 메모리를 불러 들일 수 있다. 이 과정을 swap (스왑시킨다) 이라 한다. 주 기억장치(RAM)으로 불러오는 과정을 swap-in, 보조 기억장치로 내보내는 과정을 swap-out 이라 한다. swap 에는 큰 디스크 전송시간.. 2022. 4. 21.
프로세스 스케줄링 프로세스를 스케줄링하기 위한 Queue 에는 세 가지 종류가 존재한다. Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 있으면서 CPU 를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합 각각의 Queue 에 프로세스들을 넣고 빼주는 스케줄러에도 크게 세 가지 종류가 존재한다. 장기스케줄러(Long-term scheduler or job scheduler) 메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(일반적으로 디스크)에 임시로 저장된다. 이 pool 에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 read.. 2022. 3. 24.
프로세스와 스레드의 차이 프로세스(Process)란? 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 한다. 구체적으로 살펴보면 프로세스는 함수의 매개변수, 복귀 주소와 로컬 변수와 같은 임시 자료를 갖는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함한다. 프로세스 제어 블록(Process Control Block, PCB) PCB 는 특정 프로세스에 대한 중요한 정보를 저장 하고 있는 운영체제의 자료구조이다. 운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB 를 생.. 2022. 3. 14.
하드웨어(Hardware)와 소프트웨어(Software) 하드웨어 (Hardware) 데이터를 처리하는 물리적인 기계 장치 프로세서 (중앙처리장치), 버스, 메모리 등 다양한 주변장치로 구성됨 소프트웨어 (Software) 특별한 작업 지시를 위해 명령어로 작성한 프로그램 운영체제 컴퓨터 하드웨어와 사용자 사이에 위치하며 하드웨어와 소프트웨어 자원을 관리하는 프로그램 프로세서 (Processor) 운영체제와 가장 밀접한 하드웨어로 각 부분의 동작 제어 및 연산 수행 중앙처리장치 (CPU : Central Processing Unit)라 하며 레지스터, 산술 논리 연산장치, 제어장치 등으로 구성 마이크로프로세서 (Microprocessor) 주기억장치를 제외한 레지스터, 산술 논리 연산장치, 제어장치를 칩 하나로 구성 버스 (Bus) 프로세서를 포함한 각 장치 .. 2022. 3. 12.
자료구조 - 큐(QUEUE) 1. 큐 구조 줄을 서는 행위와 유사하다. 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조이다. 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 동일 FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대가 된다. 2. 용어 Enqueue : 큐에 데이터를 넣는 기능 Dequeue : 큐에서 데이터를 꺼내는 기능 3. 파이썬 Queue 라이브러리 활용해서 큐 자료 구조 사용하기 queue 라이브러리에는 다양한 큐 구조로 Queue(), LifoQueue(), PriorityQueue() 제공 프로그램을 작성할 때 프로그램에 따라 적합한 자료 구조를 사용 Queue(): 가장 일반적인 큐 자료 구조 L.. 2021. 10. 30.
자료구조 - 배열(Array) 배열(Array) 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조 파이썬에서는 리스트 타입이 배열을 제공하고 있다. 배열이 왜 필요할까? 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 같은 종류의 데이터를 순차적으로 저장 장점 빠른 접근이 가능하다. 단점 추가/ 삭제가 쉽지 않다. 미리 최대 길이를 지정해야한다.. => 가변적인 데이터에는 적합하지 않다. 파이썬 리스트를 활용한 배열 1차원 배열 arr=[1,2,3,4,5] print(arr) >>> [1,2,3,4,5] 2차원 배열 arr2=[[1,2,3],[4,5,6]] print(arr2) >>> [[1,2,3],[4,5,6]] print(arr2[0]) # 1헹의 전체 출력 >>> [1,2,3] print(arr2[0].. 2021. 10. 29.