[컴퓨터구조/운영체제] 운영체제 설명 - 여러 프로그램이 동시에 실행되는 원리 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # 운영체제 CPU 연산을 하며, 명령어를 처리한다 중앙처리장치 Cache Memory CPU 내부에 존재하기도하고 아니기도하다 다음 연산을 위해 프로세스의 일부가 들어간다 프로그램 N개가 동시에 실행될 때 각 프로그램의 일부 명령어의 집합 및 데이터가 메인메모리로 올라간다 메인 메모리에 올라온 명령어 집합 및 데이터는 또 다시 캐시 메모리로 올라간다 캐시 메모리에 저장된 명령어 집합 및 데이터 중 하나를 가지고 CPU는 연산을 진행한다 single core 기준으로 CPU는 한 번에 한 개만 처리가 가능하다 동시에 여러 프로그램을 실행시키기 ..
[컴퓨터구조/운영체제] 컴퓨터구조 운영체제 클라우드 30분만에 이해하기 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # 폰노이만 구조 하드웨어: 어떻게 동작된다의 의미를 내포 OS: 하드웨어의 실행에 관여 # OS 파일이 모여 프로그램을 구성하게됨 프로세스: 프로그램이 실행되는 것 프로세서: 프로그램이 동작되는데 사용되게 하는 것, 즉 CPU를 의미함 OS는 프로세스를 관리하는 역할을 한다 OS가 잘 운영된다의 개념? CPU는 메모리 공간의 한계로 파일 전체를 수행하지 못하며 캐시메모리는 디스크에 비해 저장공간이 한없이 부족하다 디스크는 CPU에 비해 저렴하다 따라서 운영체제는 프로세스의 우선 순위를 결정하여 프로그램을 효율적으로 사용할 수 있게 한다 CPU는 사실..
[컴퓨터구조/운영체제] 컴퓨터 전공 수업 10분으로 압축 (컴퓨터구조 + 운영체제) 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # 폰노이만 구조 CPU ↔ Memory ↔ DISK 하드웨어(CPU, Memory, Disk) ↔ I/O # CPU ALU + 레지스터 ALU: 수학적 산술 연산을 하는 것이 있음 레지스터: 메모리에 있는 명령들이 올라와서 계산을 통해 연산을 하게 됨 캐시메모리: 임시저장공간 # Memory 저장공간 Memory에 컴퓨터 내 프로그램을 모두 올릴 수 없다 어떤 프로세스에 어떤 데이터를 적재시킬지가 관리 대상 → 메모리 관리 # DISK 저장소 파일에 얼마나 빠르게 접근할 것인가 → 디스크 관리 # I/O 키보드 마우스 모니터와 같은 입출..
Memory Corruption: Stack Buffer Overflow # 서론 모리스 웜: 스택 버퍼 오버플로우 공격을 통해 전파됨 CVE details에 따르면 스택 버퍼 오버플로우를 포함한 오버플로우 취약점은 이제까지 18,081개가 발견되어 전체에서 3번째로 많이 발견되었으며, 2019년에도 1,247개가 추가로 발견됨 # 스택 버퍼 오버플로우 1. 버퍼 오버플로우 1.1 버퍼 버퍼(Buffer): 데이터가 목적지로 이동되기 전에 보관되는 임시 저장소 데이터가 처리속도가 다른 두 장치가 있을 때, 이 둘 사이에 오가는 데이터를 임시로 저장해두는 것은 일종의 완충 작용을 함 예를 들어 키보드에서 데이터가 입력되는 속도보다 데이터를 처리하는 속도가 느린 프로그램이 있음 이런 키보드를 사용하는데 별도..
[LinuxProgramming] Chapter 10. 메모리 관리 리눅스 프로그래밍 원리와 실제 - 창병모 교수님 10.1 변수와 메모리 1) 프로세스 - 프로세스 프로세스는 실행 중인 프로그램 프로그램 실행을 위해서는 프로그램의 코드, 데이터, 스택, 힙, U-영역 등이 필요 프로세스 이미지(구조)는 메모리 내의 프로세스 레이아웃 프로그램 자체가 프로세스는 아님 - 프로세스 구조 코드 세그먼트 기계어 명령어 데이터 세그먼트 static, 전역변수가 저장됨 스택(stack) 함수 호출과 관련 지역 변수, 매개 변수, 반환 주소, 반환값 등 잦은 함수 호출 시 메모리 공간 부족으로 stack overflow 발생 힙(heap) 동적 메모리 할당 malloc() in C new class() in java..