블로그
전체 122025. 03. 23.
1
[인프런 워밍업 클럽_3기 CS] 세번째 발자국 🐾🐾🐾
📌 이 글은 워밍업 클럽 3기 감자님의 CS 강의인 ‘그림으로 쉽게 배우는 자료구조와 알고리즘’과 ‘그림으로 쉽게 배우는 운영체제’를 학습하며 정리한 내용을 담고있습니다. 🙇♂1⃣ 자료구조와 알고리즘📌 1. 정렬 알고리즘📌 2. 동적 프로그래밍2⃣ 운영체제📌 1. 메모리 관리경계 레지스터 (Base + Limit Register): 사용자 프로세스가 OS 영역 침범 못하도록 보호가변 분할 (세그멘테이션): 코드/데이터/스택 분리 가능, 유연 외부 단편화 발생고정 분할 (페이징): 일정 크기의 페이지 단위 관리 내부 단편화 발생 가능디맨드 페이징: 필요한 페이지만 메모리에 로드 (지연 적재) 초기 로딩 빠름, 페이지 폴트 주의 📌 2. 페이지 교체 알고리즘FIFO : 먼저 들어온 페이지 제거OPT : 가장 나중에 사용할 페이지 제거LRU : 가장 오래 사용되지 않은 페이지 제거클락 알고리즘 : 접근 비트 이용한 LRU 근사 빌레이디의 역설 프레임 수를 늘렸는데도 페이지 폴트가 증가하는 현상 스레싱 페이지 교체 과도 -> CPU 사용률 급감 워킹셋 자주 쓰이는 페이지 집합, 컨텍스트 스위칭 시 활용 📌 3. 파일 시스템파일 시스템 기능 : 생성, 수정, 삭제, 권한 관리, 백업, 무결성, 암호화파일 디스크립터 : 운영체제가 파일을 관리하기 위해 정보를 보관하는 파일제어블록파일 구조 파일 할당 방식 파일 삭제 : 실제 데이터를 삭제하지 않고 헤더만 제거. 블록은 Free Block List에 추가 -> 복구 가능3⃣ 회고완강을 했지만, 뭔가 찝찝한 부분들이 많다.특히, 병합 정렬과 퀵 정렬은 개념은 알겠지만, 흐름이나 코드 구현 방식이 아직 완전히 이해가 되지 않아 다시 복습이 필요할 것 같다. 이번 워밍업 클럽 3기 CS를 통해 막연하게만 알고 있던 컴퓨터 지식들을 정리할 수 있었고, 자료구조와 운영체제에 대한 기반이 조금씩 쌓이는 느낌을 받았습니다. 🥲 🐾🐾🐾
인프런워밍업클럽
・
CS
2025. 03. 23.
0
[인프런 워밍업 클럽_3기 CS] 3주차 운영체제 미션 🐾🐾🐾
1. 메모리의 종류는 어떤것들이 있나요? 각 메모리의 특징도 함께 적어주세요.레지스터 : CPU 내부의 가장 빠른 기억 장치 (휘발성) • 32bit, 64bit는 레지스터 크기를 의미캐시 : CPU가 미리 가져온 데이터를 저장하는 고속 휘발성 메모리메인 메모리 (RAM) : 운영체제와 프로세스가 올라가는 공간 (휘발성)보조 저장 장치 (HDD, SSD) : 비휘발성 메모리 2. 사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?경계 레지스터 (Boundary Register)• CPU 내에 존재하며, 프로세스가 허용된 메모리 경계를 벗어나는지 검사• 벗어나면 프로세스를 종료 3. 메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?1. 가변 분할 방식 (세그멘테이션, Segmentation) 장점 : 프로세스 크기에 맞게 메모리를 할당 단점 : 외부 단편화 발생2. 고정 분할 방식 (페이징, Paging) 장점 : 프로세스 크기와 관계없이 일정한 크기로 메모리를 할당 비연속 메모리 할당 가능 단점 : 내부 단편화 발생 4. CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?스레싱 5. HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요? 이유를 함께 적어주세요.필요하다고 생각을 합니다.운영체제를 저장하고 실행하거나 사용자의 데이터를 비휘발성으로 저장해야하기에 HDD나 SSD가 필요하다고 생각됨. 6. 파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?특정 파일을 삭제하는 경우에 파일 시스템은 파일의 모든 정보를 지우는 것이 아니라 파일 테이블의 헤더를 삭제하고 free block list에 추가하기 때문입니다.
인프런워밍업클럽
・
cs
2025. 03. 23.
0
[인프런 워밍업 클럽_3기 CS] 3주차 자료구조와 알고리즘 미션 🐾🐾🐾
1. 지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요. 버블 정렬 시간 복잡도 : O(n²) 장점 : 이해와 구현이 간단함 단점 : 성능이 좋지 않음선택 정렬 시간 복잡도 : O(n²) 장점 : 이해와 구현이 간단함 단점 : 성능이 좋지 않음삽입 정렬 시간 복잡도 : O(n²) 장점 : 이해가 쉽고 구현이 간단함. 단점 : 성능이 좋지 않음.병합 정렬 시간 복잡도 : O(n log n) 장점 : 성능이 좋음. 단점 : 이해와 구현이 어려움.퀵 정렬 시간 복잡도 : O(n log n) 장점 : 성능이 좋음. 단점 : 이해와 구현이 어려움. 2. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요. 타뷸레이션을 이용한다.타뷸레이션은 상향식 접근으로 구현되기 때문에 메모리를 절약할 수 있고, 속도가 빠르기 때문에 효율적으로 사용할 수 있을 거 같습니다.
인프런워밍업클럽
・
cs
2025. 03. 16.
1
[인프런 워밍업 클럽_3기 CS] 두번째 발자국 🐾🐾
📌 이 글은 워밍업 클럽 3기 감자님의 CS 강의인 ‘그림으로 쉽게 배우는 자료구조와 알고리즘’과 ‘그림으로 쉽게 배우는 운영체제’를 학습하며 정리한 내용을 담고있습니다. 🙇♂1⃣ 자료구조와 알고리즘📌 1. 재귀 (Recursion)재귀 개념재귀란, 자기 자신을 호출하는 방식으로 문제를 해결하는 기법콜 스택 (Call Stack)을 사용하여 함수 호출을 관리대표적인 예 : 팩토리얼 계산, 하노이 탑 문제 하노이 탑 (Tower of Hanoi)원반을 규칙에 맞게 기둥 사이로 이동시키는 문제재귀 호출을 활용하여 해결 가능const hanoi = (count, from, to, temp) => { if (count == 0) return; hanoi(count - 1, from, temp, to); console.log(`원반 ${count}를 ${from}에서 ${to}로 이동`); hanoi(count - 1, temp, to, from); }; hanoi(3, 'A', 'C', 'B');재귀적으로 생각하는 두 가지 패턴단순히 반복 실행하는 방식하위 문제의 결과를 기반으로 현재 문제를 계산하는 방식 (하향식 계산) 📌 2. 정렬 알고리즘버블 정렬 (Bubble Sort)인접한 두 데이터를 비교하며 정렬하는 방식시간 복잡도 : O(n²) (비효율적)장점 : 이해하기 쉽고 구현이 간단함단점 : 성능이 좋지 않음for (let i = 0; i arr[j + 1]) { let temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } 선택 정렬 (Selection Sort)가장 작은 값을 선택하여 앞으로 이동시간 복잡도 : O(n²)장점 : 이해하기 쉽고 구현이 간단함단점 : 성능이 좋지 않음for (let i = 0; i 2⃣ 운영체제📌 1. 운영체제 개요운영체제의 역할프로세스 관리 : CPU 스케줄링, 멀티태스킹메모리 관리 : 프로세스 메모리 할당파일 및 입출력 관리 : 파일 시스템, 장치 드라이버 제어컴파일 과정test.c -> 전처리기 -> test.i -> 컴파일러 -> test.s -> 어셈블러 -> test.o -> 링커 -> test.exe전처리기 : #include, #define 등을 처리컴파일러 : C 코드를 어셈블리 코드로 변환어셈블러 : 어셈블리 코드를 기계어로 변환링커 : 실행 가능한 바이너리 파일 생성 📌 2. 프로세스 스케줄링FIFO (First In First Out)도착 순서대로 CPU를 할당장점 : 구현이 간단하고 공정함단점 : 실행 시간이 긴 프로세스가 먼저 도착하면 대기 시간이 증가 SJF (Shortest Job First)실행 시간이 짧은 프로세스를 우선 실행단점 : 프로세스의 실행 시간을 미리 예측하기 어려움 RR (Round Robin)타임 슬라이스(Time Slice)를 사용하여 프로세스를 순환 실행타임 슬라이스가 너무 작으면 문맥 전환 비용이 증가하여 비효율적 MLFQ (Multi-Level Feedback Queue)CPU Bound Process와 I/O Bound Process를 구분하여 처리CPU Bound Process : CPU 사용 시간이 길면 낮은 우선순위 큐로 이동I/O Bound Process : CPU를 짧게 사용하며 높은 우선순위 큐 유지 📌 3. 프로세스 간 통신공유 자원과 임계 구역공유 자원 : 여러 프로세스가 공동으로 사용하는 변수, 메모리, 파일임계 구역 (Critical Section) : 한 번에 하나의 프로세스만 접근해야 하는 구역 임계 구역 문제 해결을 위한 3가지 조건하나의 프로세스만 접근 가능여러 요청이 있을 경우 순차적으로 접근 허용임계 구역에 들어간 프로세스는 빠르게 종료해야 함 세마포어 (Semaphore)동기화 기법으로 공유 자원에 대한 접근을 제한 모니터 (Monitor)세마포어의 단점을 보완한 기법프로그래밍 언어 수준에서 지원 (synchronized 키워드 사용) 📌 4. 데드락 (교착 상태)여러 프로세스가 서로 자원을 기다리며 작업이 멈추는 상태 데드락 발생 조건 (4가지)상호 배제 (Mutual Exclusion) : 한 번에 하나의 프로세스만 자원 사용 가능비선점 (No Preemption) : 자원을 강제로 빼앗을 수 없음점유와 대기 (Hold and Wait) : 자원을 점유한 상태에서 추가 자원을 기다림원형 대기 (Circular Wait) : 프로세스들이 서로 자원을 기다리며 원형 구조 형성 데드락 해결 방법교착 상태 회피 (Deadlock Avoidance) 자원 할당 시 교착 상태 발생 여부를 예측은행원 알고리즘 (Banker’s Algorithm) 사용하여 안전 상태 유지교착 상태 검출 및 해결가벼운 교착 상태 검출 : 일정 시간 동안 프로세스가 멈춰 있으면 강제 종료무거운 교착 상태 검출 : 운영체제가 직접 프로세스의 자원 사용을 모니터링 후 해결 📌 5. 메모리 관리메모리 종류레지스터 : CPU 내부의 가장 빠른 기억 장치 (휘발성)캐시 메모리 : CPU가 미리 가져온 데이터를 저장하는 고속 메모리메인 메모리 (RAM) : 실제 운영체제와 프로세스가 올라가는 공간 (휘발성)보조 저장 장치 (HDD, SSD) : 비휘발성 메모리 메모리 할당 방식가변 분할 방식 (Segmentation) : 프로세스 크기에 맞게 메모리를 할당고정 분할 방식 (Paging) : 프로세스 크기와 관계없이 일정한 크기로 할당 버디 시스템 (Buddy System)2의 승수 단위로 메모리를 분할하여 할당내부 단편화 최소화 & 프로세스 크기에 따라 유동적 할당 가능 3⃣ 회고첫 주차에 듣지 못했던 강의를 들으면서 다시 정상적으로 강의를 듣기 시작했다. 🙇♂ 재귀함수 강의 중 하노이 탑 내용은 혼자서 시도를 해보면 절대 구현을 못해낼 거 같다... 이 부분을 다시 공부해야할 것 같습니다 ㅠㅠ.. 이번 2주차 강의를 들으면서 자료구조와 알고리즘은 되게 묵직한 그런 느낌이고, 운영체제는 뭔가 이 컴퓨터란 존재에 대해서 다시 생각해보는 강의였던 것 같습니다..! 🐾🐾
인프런워밍업클럽
・
CS
2025. 03. 16.
0
[인프런 워밍업 클럽_3기 CS] 2주차 자료구조와 알고리즘 미션 🐾🐾
자료구조와 알고리즘1. 재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?기저 조건이 없으면 함수가 무한히 호출되어 스택 오버플로우가 발생된다. 2. 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.function sumOdd(n){ if (n 2. 다음 코드는 매개변수로 주어진 파일 경로(.는 현재 디렉토리)에 있는 하위 모든 파일과 디렉토리를 출력하는 코드입니다.다음 코드를 재귀 함수를 이용하는 코드로 변경해보세요. 기존 코드const fs = require("fs"); // 파일을 이용하는 모듈 const path = require("path"); // 폴더와 파일의 경로를 지정해주는 모듈 function traverseDirectory1(directory){ const stack = [directory]; // 순회해야 할 디렉토리를 저장할 스택 while (stack.length > 0) { // 스택이 빌 때까지 반복 const currentDir = stack.pop(); // 현재 디렉토리 const files = fs.readdirSync(currentDir); // 인자로 주어진 경로의 디렉토리에 있는 파일or디렉토리들 for (const file of files) { // 현재 디렉토리의 모든 파일or디렉토리 순회 const filePath = path.join(currentDir, file); //directory와 file을 하나의 경로로 합쳐줌 const fileStatus= fs.statSync(filePath); // 파일정보 얻기 if (fileStatus.isDirectory()) { // 해당 파일이 디렉토리라면 console.log('디렉토리:', filePath); stack.push(filePath); } else { // 해당 파일이 파일이라면 console.log('파일:', filePath); } } } } traverseDirectory1("."); // 현재 경로의 모든 하위 경로의 파일, 디렉토리 출력 재귀함수 코드const fs = require("fs"); // 파일을 이용하는 모듈 const path = require("path"); // 폴더와 파일의 경로를 지정해주는 모듈 function traverseDirectory1(directory) { const files = fs.readdirSync(directory); for (const file of files) { const filePath = path.join(); const fileStatus = fs.statSync(filePath); if (fileStatus.isDirectory()) { console.log('디렉토리:', filePath); traverseDirectory1(filePath); } else { console.log('파일:', filePath); } } } traverseDirectory1("."); // 현재 경로의 모든 하위 경로의 파일, 디렉토리 출력
인프런워밍업클럽
・
CS
2025. 03. 16.
0
[인프런 워밍업 클럽_3기 CS] 2주차 운영체제 미션 🐾🐾
운영체제 1. FIFO 스케줄링의 장단점이 뭔가요?장점구현이 간단하고 공정한 방식CPU를 먼저 요청한 순서대로 처리하기 때문에 이해하기 쉽다.단점실행 시간이 긴 프로세스가 먼저 도착하면, 이후 프로세스들의 대기 시간이 길어짐.I/O 작업을 포함한 프로세스가 있으면 CPU 사용률이 저하됨.평균 대기 시간이 증가할 수 있어 비효율적이다. 2. SJF를 사용하기 여러운 이유가 뭔가요?프로세스의 실행 시간을 사전에 알 수 없음.실행 시간이 긴 프로세스는 무한정 대기할 수도 있음. 3. RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?컨텍스트 스위칭이 너무 자주 발생하여 오버헤드가 커짐.CPU 성능이 저하되고 비효율적인 실행이 발생한다. 4. 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?CPU Bound ProcessCPU 연산을 많이 사용하는 프로세스긴 CPU Burst를 가지며, 우선순위가 낮은 큐로 이동한다.I/O Bound ProcessI/O 작업이 많아 CPU를 짧게 사용함.짧은 CPU Burst를 가지며, 우선순위가 높은 큐에서 처리된다. 5. 공유자원이란무엇인가요?여러 프로세스가 공동으로 사용하는 변수, 파일, 메모리 등의 자원을 의미한다.공유 자원을 관리하지 않으면 경쟁 조건이 발생할 수 있다.동기화 기법을 활용해 임계 구역 문제를 해결해야 한다. 6. 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?상호 배제 : 한 번에 하나의 프로세스만 자원을 사용 가능.비선점 : 자원을 강제로 빼앗을 수 없음.점유와 대기 : 프로세스가 자원을 점유한 상태에서 추가 자원을 기다림.원형 대기 : 프로세스들이 서로 자원을 기다리며 원형 구조를 형성한다.
인프런워밍업클럽
・
CS
2025. 03. 09.
0
[인프런 워밍업 클럽_3기 CS] 첫번째 발자국 🐾
📌 이 글은 워밍업 클럽 3기 감자님의 CS 강의인 ‘그림으로 쉽게 배우는 자료구조와 알고리즘’과 ‘그림으로 쉽게 배우는 운영체제’를 학습하며 정리한 내용을 담고있습니다. 🙇♂1⃣ 자료구조와 알고리즘📌 1. 자료구조 개요자료구조(Data Structure): 데이터를 효율적으로 저장하고 관리하는 방법 알고리즘(Algorithm): 문제를 해결하는 명확한 방법자료구조와 알고리즘은 시간복잡도를 고려하여 적절히 선택해야 함. 📌 2. 주요 시간복잡도 표기법특정 알고리즘이 어떤 문제를 해결하는 데 걸리는 시간 Big-Ω (Ω, 최선의 경우) : 한 번에 찾을 경우 -> 최소 실행 시간Big-O (O, 최악의 경우) :배열을 끝까지 탐색해야 할 경우 -> 최대 실행 시간O(n) : 선형 시간 알고리즘Big-Θ (Θ, 평균의 경우) :배열 길이의 중간 정도 탐색할 경우 -> 평균 실행 시간 O(1) (상수 시간 알고리즘) : 입력 크기에 상관없이 일정한 시간에 실행됨. 📌 3. 배열 vs 연결 리스트자료구조 : 속도, 삽입/삭제배열 : O(1), O(n)연결 리스트 : O(n), O(1) 📌 4. 스택(Stack) & 큐(Queue) & 덱(Deque)스택(Stack): LIFO(Last In, First Out) 구조 push(), pop(), peek(), isEmpty()사용 예시: 함수 호출, 실행 취소(Undo), 브라우저 뒤로 가기큐(Queue): FIFO(First In, First Out) 구조enqueue(), dequeue(), front(), isEmpty()사용 예시: 운영체제 프로세스 스케줄링, 프린터 대기열덱(Deque): 양쪽에서 삽입/삭제 가능addFirst(), removeFirst(), addLast(), removeLast()사용 예시: 작업 스케줄링, 캐시 구현📌 5. 해시 테이블 (Hash Table)Key-Value 저장 방식O(1)의 시간복잡도로 데이터 검색, 삽입, 삭제 가능좋은 해시 함수: 데이터를 고르게 분배하여 충돌을 방지해야 함. 2⃣ 운영체제📌 1. 운영체제의 역할운영체제(OS)는 하드웨어와 소프트웨어를 관리하는 역할주요기능 : 프로세스 관리메모리 관리하드웨어 관리파일 시스템 관리 📌 2. 프로그램 vs 프로세스 vs 쓰레드프로그램 : 저장장치에 저장된 명령문 집합프로세스 : 실행 중인 프로그램쓰레드 : 프로세스 내에서 실행되는 작업 단위 📌 3. 프로세스의 상태 변화생성 상태 (New)PCB 생성 및 메모리에 적재준비 상태 (Ready)CPU 할당을 기다리는 상태실행 상태 (Running)CPU에서 실행 중대기 상태 (Waiting)입출력 요청으로 인해 대기완료 상태 (Terminated)실행이 종료된 상태 📌 4. 컨텍스트 스위칭CPU가 실행 중인 프로세스를 변경하는 과정PCB의 정보 변경CPU 오버헤드 발생 가능 📌 5. 프로세스 생성과 종료fork() : 부모 프로세스가 자식 프로세스를 생성좀비 프로세스 : 종료된 프로세스가 완전히 제거되지 않은 프로세스 📌 6. 멀티프로그래밍 vs 멀티프로세싱유니프로그래밍 : 하나의 프로세스만 실행멀티프로그래밍 : 여러 개의 프로세스를 올려 실행멀티프로세싱 : 여러 개의 CPU에서 병렬로 실행 3⃣ 회고이미지 조절이 안된다..이미지에서 보이는 것처럼 3월 7일자 강의를 듣지 못하였다. 🥲 (다음 주에 시간을 내어 강의를 학습할 예정입니다 !)첫 주차를 통해 CS 기초에 대한 전반적인 흐름과 이해를 할 수 있었다.아직 이해를 완벽하게 하지 못한 부분도 있지만, 시간을 내어 다시 강의를 들으며 복습하고 싶은 마음이 가득하다.. 🐾
인프런워밍업클럽
・
CS
2025. 03. 09.
0
[인프런 워밍업 클럽_3기 CS] 1주차 자료구조와 알고리즘 미션 🐾
자료구조와 알고리즘1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요?이유를 함께 적어주세요.해시테이블을 사용할 것이다. 학생의 정보 검색에 있어 O(1)의 성능을 제공하여 효율적이다. 2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.Queue(큐)를 사용할 것이다. 주문은 FIFO 방식으로 처리 되어야하기에 Queue가 적합하다. 3. 우리가 구현한 스택은 0번 인덱스, 즉 입구쪽으로 데이터가 삽입되고 나오는 구조입니다. 반대로 마지막 인덱스, 즉 출구쪽으로 데이터가 삽입되고 나오는 구조로 코드를 변경해주세요.class Stack { constructor() { this.list = new LinkedList(); } push(data) { this.list.insertAt(this.list.count, data); } pop() { try { return this.list.deleteAt(this.list.count - 1); } catch (e) { return null; } } peek() { return this.list.getNodeAt(this.list.count - 1); } isEmpty() { return this.list.count === 0; } } 4. 해시테이블의 성능은 해시 함수에 따라 달라집니다. 수업 시간에 등번호를 이용해 간단한 해시 함수를 만들어봤습니다. 이번엔 등번호가 아닌 이름을 이용해 데이터를 골고루 분산시키는 코드로 수정해주세요. 힌트: charCodeAt() 함수를 이용 예시: name1 = "이운재"; name1.charCodeAt(0); // 51060 이운재의 0번 인덱스 ‘이’의 유니코드 출력hashFunction(name) { return name.charCodeAt(0) % 10; }
인프런워밍업클럽
・
CS
2025. 03. 09.
0
[인프런 워밍업 클럽_3기 CS] 1주차 운영체제 미션 🐾
운영체제while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다.이 방식은 폴링방식입니다.1초마다 체크하기 때문에 성능에 좋지 않습니다.이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요? 풀링 방식은 주기적인 체크로 인해 성능이 좋지 않기에 인터럽트 방식으로 해결한다. 1. 프로그램과 프로세스가 어떻게 다른가요?- 프로그램 : 저장장치에 저장된 명령문의 집합체- 프로세스 : 실행 중인 프로그램 2. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?- 멀티프로그래밍 : 하나의 CPU에서 여러 개의 프로그램을 빠르게 번걸아가면서 실행- 멀티프로세싱 : 여러 개의 CPU를 사용하여 여러 프로세스를 병렬로 작업을 처리 3. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?운영체제(OS)는 프로세스를 관리하기 위해 PCB(Process Control Block)을 사용합니다. PCB는 포인터, 프로세스의 상태 등을 저장하여 운영체제가 프로세스를 제어하고 관리할 수 있도록 합니다. 4. 컨텍스트 스위칭이란 뭔가요?컨텍스트 스위칭(Context Switching)은 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해 실행중인 프로세스의 상태를 저장하고 다른 프로세스의 상태값으로 교체하는 작업
인프런워밍업클럽
・
CS
2024. 05. 18.
0
[인프런 워밍업 클럽_1기 BE] 세번째 발자국 🐾🐾🐾
강의 Day 10. ✔객체지향과 JPA 연관관계연관관계 (일대일, 일대다, 다대다) Day 11. ✔기본적인 배포를 위한 준비git, github 사용법 Day 12. ✔AWS와 EC2 배포AWS로 EC2 서버 배포 및 도메인 구입 후 DNS 적용기본적인 리눅스 명령어 Day 13. ✔✖Spring Boot 설정, 버전업 이해하기 미션 6일차 과제 - [API 분리 (Controller, Service, Repository)]https://www.notion.so/donghyeun02/6-8dd522fac3fc4ae186c97352db304631?pvs=4 회고 벌써 3주가 지나 세번째 발자국 글을 쓰고 있는데, 진행 중인 프로젝트와 워밍업 클럽 시간이 겹쳐 제대로 참여하지 못했던 것같은 느낌이 많이 드는 것같다.프로젝트에 대해서도 그렇고 워밍업 클럽에서도 그렇게 그다지 집중이 안되는 거 같아 인생에 대해서 회의감이 들고 뭔가 자존감이 많이 떨어졌다.. 🥲 다음주에 있을 미니 프로젝트 제출은 좀 더 시간을 할애하여 열심히 해봐야겠다.
백엔드