본문 바로가기

CS/운영체제

(5)
가상 메모리 메모리란? 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치 메모리는 크게 내부 기억장치인 주 기억장치와 외부 기억장치인 보조 기억장치로 분류 주 기억장치 DRAM, CPU 안에 있는 레지스터 (register) 와 캐쉬 (cache memory) 등 외부 기억장치 SSD, HDD 등 가상 메모리란? 애플리케이션이 실행될 때, 실행에 필요한 일부분만 메모리에 올라감 애플리케이션의 나머지는 디스크에 남게 됨 디스크가 RAM의 보조 기억장치처럼 작동됨 빠르고 작은 기억장치(RAM)을 크고 느린 기억장치(디스크)와 병합하여, 하나의 크고 빠른 기억장치(가상 메모리)처럼 동작하게 됨. 가상 메모리를 구현하기 위해서는 컴퓨터가 특수 메모리 관리 하드웨어를 갖추고 있어야만 함. MMU (Memory..
CPU 스케줄러 스케줄러란? 프로세스 들 중에 무엇을 어떻게 어떤시간에 선택해야하는 것인지 원칙을 세워 실행하는 것 큐 (Queue) 프로세스를 스케줄링 하기 위한 큐는 세가지 종류가 있음. Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 있으면서 CPU를 기다리는 프로세스의 집합 Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합 스케줄러의 종류 장기 스케줄러 (Long-term scheduler or job scheduler) 메모리는 한정되어있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(일반적으로 디스크)에 임시 저장이 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 준비큐 (ready..
프로세스와 스레드 프로세스 사전적 의미 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에서 올라와 실행되고 있는 프로그램의 인스턴스 (독립적인 개체) 인스턴스 ? 프로그램 실행에 필요한 내용이 컴퓨터 메모리(RAM)에 적재된다는 뜻 운영체제로부터 시스템 자원을 할당받는 작업의 단위 동적인 개념으로 실행된 프로그램을 의미 할당받는 시스템 자원의 예시 CPU 시간 운영되기 위해 필요한 주소 공간 독립된 메모리 영역 프로세스와 프로그램 ? 프로그램 어떤 작업을 하기 위해 실행할 수 있는 파일 또는 프로그램 .exe 그림판, 크롬, 카카오톡, 엑셀, 파워포인트 등 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않는 정적인 상태 메모리에 올라가 있지 않은? 아직 운영체제가 프로그램에게 독립적인 메모리 공간을..
메모리(RAM) 구조 메모리(RAM) 구조란? 메모리 공간 종류 Code (코드 영역) 실행할 프로그램의 코드 Data (데이터 영역) 전역 변수 , 정적 변수 Heap (힙 영역) 사용자의 동적 할당 런 타임에 크기가 결정됨 Stack (스택 영역) 지역 변수, 매개 변수 컴파일 타임에 크기가 결정됨 컴파일 타임 과 런타임 컴파일 (Compiletime) - 프로그램을 생성하기 위해 개발자는 첫째로 소스코드를 작성하고 컴파일이라는 과정을 통해 기계어코드로 변환 되어 실행 가능한 프로그램이 되며, 이러한 편집 과정을 컴파일 타임이라고 합니다. 컴파일 타임 에러 (Compile time error) - 소스코드가 컴파일 되는 과정 중에 발생하는 문제들로 인해 컴파일이 방해되어 발생하는 오류들을 의미합니다. Syntax erro..
운영체제 운영체제란? 시스템의 자원과 동작을 관리하는 소프트웨어 자원 : CPU 동작 : MEMORY PC : 윈도우, 맥 등 Mobile : 안드로이드, IOS 등 프로세스, 저장장치, 네트워킹, 사용자, 하드웨어를 관리 프로세스 : 우리가 실행하는 프로그램 저장장치 : RAM, HDD (하드디스크) * 시스템의 자원과 동작을 관리하는 소프트웨어이고, 프로세스, 저장장치, 네트워킹, 사용자, 하드웨어를 관리하게 됩니다.