공학/프로그래밍 5

스케줄링,가상메모리

스케줄링(Scheduling) 이란? 스케줄링(Scheduling)은 작업, 프로세스, 작업 흐름 등을 효율적으로 관리하고 실행 순서를 결정하는 과정. 컴퓨터 과학과 운영 체제에서, 스케줄링은 특히 중요한 개념으로, 시스템 자원(예: CPU 시간, 메모리, I/O 장치 등)을 다수의 작업이나 프로세스에 할당하는 방법을 의미함. 스케줄링의 목표는 자원을 효율적으로 사용하여 최적의 성능, 응답 시간, 처리량을 달성하는 것. 스케줄링의 유형 CPU 스케줄링: 가장 일반적인 형태로, 운영 체제가 프로세스나 스레드에 CPU 시간을 어떻게 할당할지 결정함. CPU 스케줄링 알고리즘에는 라운드 로빈(Round Robin), 우선순위 기반(Priority Scheduling), 최단 작업 먼저(Shortest Job ..

프로세스공부:명령어 집합구조,가상머신,RISC,CISC

프로세스:명령어 집합구조 명령어 집합 구조 (ISA) ISA는 프로세서가 인식하고 실행할 수 있는 기계어 명령어의 집합입니다. 컴파일러 없이는 프로그래머가 직접 프로세서가 이해할 수 있는 기계어나 어셈블리어로 프로그램을 작성해야 합니다. Intel, AMD 등의 제조사는 자신들만의 ISA를 정의합니다 (예: x86). 다른 ISA를 사용하는 프로세서 간에는 직접적인 호환성이 없습니다. 가상 머신 .NET, JVM과 같은 가상 머신은 프로그램을 운영체제와 프로세서의 영향을 받지 않고 실행할 수 있게 합니다. 이는 ISA의 차이로 인한 문제를 해결하는 한 가지 방법입니다. ISA의 구성 요소 명령어 종류, 피연산자 타입, 레지스터 개수, 인코딩 방법 등을 정의합니다. 응용 프로그램과 운영체제 사이의 약속인 ..

자료구조)Stack구조-C

Stack 구조란? Stack은 제한적으로 접근할 수 있는 나열 구조로 접근방법은 언제나 목록의 맨 끝에서만 일어납니다 더보기 참조 스택 - 위키백과, 우리 모두의 백과사전 (wikipedia.org) 스택 - 위키백과, 우리 모두의 백과사전 스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 ko.wikipedia.org 주요 특징으로는 스택의 마지막에서만 자료를 넣거나 뺄 수 있으며 LIFO(Last In First Out) 구조로 되어있습니다 자료를 넣을 때는 PUSH라 하며 빼낼 때는 POP이라고합니다 정리해보면 Stack 특징은 LIFO구..

자료구조)링크드리스트-단일 링크드 리스트

링크드 리스트 Linked List란? 각 노드가 데이터와 포인터를 가지고 한줄로 연결되어있는 방식으로 데이터를 저장하는 자료구조로 포인터를 통해 다음노드와 연결시켜 사용하는 자료구조다. 링크드 리스트의 장단점 링크드 리스트는 배열과 자주 비교되는데 링크드 리스트와 배열의 차이는 이러하다 링크드 리스트 배열처럼 연속적으로 저장하는것처럼보이지만 메모리상에는 연속적으로 위치하지 않고 포인터를 통해 링크한다. 장점 삽입 및 중간 수정이 매우 편하다. 단점 항목 접근 속도가 오래 걸린다 특히 뒤로있을수록 단일 연결 리스트의 경우 앞에서부터 탐색해 가야하기때문에 오래걸린다 메모리 연산으로 접근 불가능하다 포인터를 저장하는 공간을 따로 가져야 해서 메모리를 더 잡아먹는다 vs 배열 메모리상에 물리적으로 연속된 메모..

메모리 구조

Stack 영역: 함수의 호출과 관련되어 있으며 프로그램이 자동으로 사용하는 임시 메모리 지역변수,매개변수,리턴값이 함수의 호출과 함께 할당되었다가 함수의 호출이 끝나면 소멸 해버립니다 stack은 함수가 호출되면 매개변수 반환 주소값 지역변수등이 저장되며 이렇게 저장되는 함수 호출정보를 스택 프레임이라고 합니다 후입선출 구조 push로 저장하고 pop으로 뺴냄 스택은 높은 번지의 메모리 주소 -> 낮은 번지 메모리 방향으로 할당됨 컴파일 하는동안에 크기가 결정됨 Stack overflow-stack이 heap영역을 침범 Heap 영역: 사용자가 직접관리하는 메모리로 필요에 의해 동적으로 메모리를 할당 할 때사용 할당해야하는 메모리의 크기를 프로그램이 실행되는동안 결정해야할떄 쓰는 메모리 런타임에 결정됨..