본문 바로가기

CS(Computer Science)13

[CS] 가상 메모리 정리 📖 가상 메모리 개념 이해 ✅ 가상 메모리가 필요한 이유 하나의 프로세스만 실행 가능한 시스템 예를 들어 배치 처리 시스템 같은 경우에는 가상 메모리가 필요가 없다. 하지만 여러 프로세스를 동시 실행하는 시스템 같은 경우에는 메모리 용량 부족 이슈나 프로세스 메모리 영역 간에 침범 이슈가 있을 수 있기 때문에 가상메모리가 필요하다. ✅ 가상 메모리란? 메모리가 실제 메모리보다 많아 보이게 하는 기술 실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술 프로세스 간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음 가상 메모리 콘셉트 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 데이터를 읽고 쓸 때만 물리 주소로 바꿔주면 된다. virtual address (가상 주소) .. 2023. 2. 27.
[CS] 스레드(thread) 간략 정리 📖 스레드 정리 하나의 프로세스에 여러 개의 스레드 생성 가능하다. 스레드들은 동시에 실행 가능하다. 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능하다. ✅ 스레드의 장단점 📌 스레드 장점 사용자에 대한 응답성 향상 작업을 분할함으로써 속도를 향상해 사용자에 대한 빠른 반응이 가능하다. 자원 공유 효율 IPC 기법과 같이 프로세스 간 자원 공유를 위해 번거로운 작업이 필요 없다. 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능하다. 작업이 분리되어 코드가 간결 하지만 작성하기 나름이다. 📌 스레드 단점 여러개의 스레드 중 한 스레드만 문제가 돼도, 전체 프로세스가 영향을 받는다. 스레드를 많이 생성하면, Context Switching이 많이 일어나, 성능이 저하된다. 이 단점.. 2023. 2. 22.
[CS] 프로세스 구조 이해 ✅ 프로세스(process) 구성요소 text(CODE) : 코드 data : 변수/초기화된 데이터 stack : 임시 데이터(함수 호출, 로컬 변수등) heap: 코드에서 동적으로 만들어지는 데이터 ✅ 프로세스와 컴퓨터 구조 연관 관계 컴퓨터 구조에서 우리는 두 용어를 만나게 된다. PC(Program Counter) + SP(Stack Pointer) 둘 다 레지스터이며, 용어들의 의미를 보자면 PC : 다음 실행할 코드 주소를 가리킨다. SP : 스택 최상단 주소를 가리킨다. 를 뜻한다. 두 개를 활용하여 임베디드 시스템 등에서 동작하는 C프로그램등은 디버깅에 사용된다. 💡 파이썬에서 재귀함수 호출이 일정 횟수 이상이면 에러 나는 이유 고정된 스택 공간 때문이다. 📖 힙과 콘텍스트 스위칭 이해 ✅ .. 2023. 2. 19.
[CS] 운영체제 스케줄링 기본 및 알고리즘 이해 📖 운영체제 스케줄링 종류 ✅ 시분할 시스템 응용 프로그램이 CPU를 점유하는 시간을 잘게 쪼개어 실행될 수 있도록 하는 시스템이며 다중 사용자도 지원한다 ✅ 멀티 태스킹 단일 CPU에서, 사람이 인지하기 힘든 시간 10 ~ 20ms 단위로 실행 응용 프로그램을 바꿔 여러 응용 프로그램이 동시에 실행하는 것처럼 보이게 하는 시스템. ✅ 멀티프로그래밍 최대한 CPU를 일정 시간당 많이 활용하는 시스템 CPU를 활용한다는 말의 의미를 알아보자면, 어떤 프로세스를 실행시키는데 레지스터나 캐시 같은 메모리가 아닌 SSD, HDD 같은 저장매체에서 데이터가 필요해 가져오는 동안 CPU가 대기를 하는 일이 발생한다면 그 시간 동안 비효율이 발생한다. 그래서 효율적으로 그 대기 시간 안에 다음 진행할 프로세스를 먼저.. 2023. 2. 19.