게시글
블로그
전체 92025. 03. 23.
0
인프런 워밍업 클럽 CS - 3주차 발자국 👣
운영체제가상메모리 ================== * 세그멘테이션: 메모리를 논리적 단위(세그먼트)로 나누어 관리하는 기법 * 페이징: 메모리를 고정 크기의 페이지 단위로 나누어 관리하는 기법 * 페이지드 세그멘테이션: 세그멘테이션과 페이징을 결합한 방식 * 디맨드 페이징: 페이지가 필요한 시점에만 메모리에 로드되는 방식 * 페이지 교체 정책: 메모리가 부족할 때 어떤 페이지를 교체할지 결정하는 알고리즘(예: LRU, FIFO) * 스레싱과 워킹셋: 스레싱은 페이지 부족으로 시스템이 과도하게 교체되는 상태, 워킹셋은 현재 프로세스가 필요로 하는 페이지들의 집합 입출력 장치 ================== * 주변 장치: 마우스, 키보드, 프린터 등과 같은 외부 장치들 * 하드디스크/Flash Memory(SSD): 데이터 저장을 위한 장치. SSD는 빠른 속도와 내구성으로 하드디스크보다 우수 파일시스템 ================== * 파일과 파일 시스템: 파일을 저장하고 관리하는 시스템으로, 디렉토리 구조와 접근 권한을 관리 * 디렉토리: 파일들을 논리적으로 그룹화하여 관리하는 시스템 자료구조와 알고리즘삽입정렬 ================== 주어진 배열에서 하나씩 선택하여 그 값을 적절한 위치에 삽입하는 방식 병합정렬 ================== 배열을 반으로 나누어 정렬 후 합치는 방식 퀵정렬 ================== 피벗을 선택하고, 피벗보다 작은 값과 큰 값을 구분하여 정렬하는 방식 동적 프로그래밍 ================== * 메모이제이션: 중복 계산을 피하기 위해 계산된 값을 저장하여 재사용 (하향식) * 타뷸레이션: 작은 하위 문제들을 먼저 해결하고, 그 값을 이용하여 큰 문제를 해결하는 방식 (상향식) 회고드디어.... 끝!!!! 완주를 성공해서 기쁘다. 솔직히 인프런 워밍업 클럽 CS 스터디가 아니었으면, 언제 끝났을지 모를거다 하하 정해진 커리큘럼에 맞춰 공부하고, 미션과 발자국, 회고를 남기면서 학습효과가 더 높았던 것 같다. 참여하길 잘했다....!! 마지막 주차다보니 집중력이 좀 떨어진 것도 있었다. 하지만 곧 끝나니까 조금만 참아!!! 라는 마음으로 꾸역꾸역 공부했다ㅎ 그리고 어려운 내용도 있어서 좀 힘들었다 헝헝 영체제에서는 가상 메모리 파트가, 알고리즘 자료구조에서는 재귀응용 때문에 @_@ 연속 ~~ 그래도 괜찮다. 일단 한번 훑어봤으니 그다음에는 더 수월할거라 생각한다! 알고리즘 자료구조 심화편과 네트워크도 감자 쌤과 함께할거다! 온라인 라이브때 말하는 감자.. 그리울 것이다. 진짜 너무 귀엽다 감자 ㅜㅜ
2025. 03. 23.
0
인프런 워밍업 클럽 CS - 3주차 자료구조와 알고리즘 미션
자료구조와 알고리즘 1. 지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요. 버블정렬장점 : 이해와 구현이 간단함단점 : 성능이 좋지 않음 시간 복잡도 : O(n²)선택정렬장점 : 이해와 구현이 간단함단점 : 성능이 좋지 않음시간 복잡도 : O(n²)삽입정렬장점 : 이해와 구현이 간단함단점 : 성능이 좋지 않음시간 복잡도 : O(n²)병합정렬장점 : 성능이 좋음단점 : 이해와 구현이 어려움시간 복잡도 : O(n log n) 퀵정렬장점 : 속도가 빠름단점 : 최악의 경우 시간 복잡도가 O(n²)으로 증가시간 복잡도 : 평균 Θ(n log n), 최악 O(n²) 2. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요.메모리가 부족한 시스템에서는 타뷸레이션이 적합한 것 같습니다. 타뷸레이션은 반복문을 통해 문제를 해결하기 때문에 메모리 사용량이 적습니다. 반면, 메모이제이션은 이미 계산한 결과를 저장해 중복 계산을 피할 수 있지만, 메모리를 많이 사용하므로 적합하지 않습니다.
알고리즘 · 자료구조
2025. 03. 23.
0
인프런 워밍업 클럽 CS - 3주차 운영체제 미션
운영체제 1. 메모리의 종류는 어떤것들이 있나요? 각 메모리의 특징도 함께 적어주세요.레지스터CPU 내부에 위치한 메모리로, 메모리 중 속도가 가장 빠르지만 용량이 매우 작다.캐시메인 메모리에서 CPU까지 데이터를 가져오는 데 시간이 다소 걸리는 편이다. 이를 개선하기 위해 자주 사용하는 데이터를 캐시에 저장하여 속도를 높이는 역할을 한다. L1, L2, L3로 나뉘며, L1이 가장 빠르지만 용량이 작고, L3는 상대적으로 느리지만 용량이 크다.메인 메모리 (RAM)실행 중인 프로그램과 데이터를 저장하는 휘발성 메모리로, 전원이 꺼지면 데이터가 사라진다.보조 저장 장치 (HDD, SSD)가장 용량이 크지만 속도가 메모리보다 느리다. 전원을 꺼도 데이터가 보존된다. 2. 사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?경계 레지스터 3. 메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?가변 분할 방식프로세스의 크기에 맞게 동적으로 메모리에 할당하는 방식으로 메모리를 효율적으로 사용할 수 있다는 장점이 있다. 하지만 프로세스가 종료되면서 메모리의 빈 공간이 여기저기 흩어지면 외부 단편화가 발생할 수 있다는 단점이 있다.고정 분할 방식미리 정해진 크기로 나누어진 메모리 공간에 프로세스를 할당하는 방식으로 관리 방식이 단순하고 할당 속도가 빠르다는 장점이 있다. 하지만 프로세스 크기가 파티션보다 작으면 남는 공간이 생겨 내부 단편화가 발생하는 단점이 있다. 4. CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?스래싱CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 페이지 부재가 너무 자주 발생하여 CPU가 대기상태에 빠지는 현상을 스래싱이라고 한다. 5. HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요?없어도 실행가능하지만 데이터를 저장하기 위해서는 HDD나 SSD가 필요하다. 6. 파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?파일을 삭제하면 파일 데이터 자체를 삭제하는 것이 아니라 저장된 위치를 가리키는 정보만 삭제되므로 실제 데이터는 디스크에 그대로 남아 있다. 그래서 포렌식으로 파일을 복구할 수 있는 것이다.
시스템 · 운영체제
2025. 03. 16.
0
인프런 워밍업 클럽 CS - 2주차 발자국 👣
운영체제프로세스 간 통신 ================== 프로세스는 독립적으로 실행되기도 하지만 다른 프로세스와 데이터를 주고받으며 통신을 하는 경우도 있다. 통신은 한 컴퓨터내에서 실행되고 있는 다른 프로세스와 할 수도 있고 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와 할 수도 있다. 공유자원과 임계구역 ================== * 공유자원 : 프로세스 간 통신을 할 때 공동으로 이용하는 변수나 파일들이 있는데 이런 것들을 공유자원이라고 한다. * 임계구역 : 여러 프로세스가 동시에 사용하면 안되는 영역 교착상태의 필요조건 ================== 1. 상호배제 2. 비선점 3. 점유와 대기 4. 원형 대기 교착상태의 해결방법 (은행원 알고리즘) ================== 안전 상태를 유지하면서 자원을 할당하는 방법 메모리의 종류 ================== * 레지스터 > 캐시 메모리 > RAM(메인 메모리) > 보조 저장 장치(SSD, HDD) ✅ 속도: 레지스터가 가장 빠르고, 보조 저장 장치가 가장 느림 ✅ 용량: 보조 저장 장치가 가장 크고, 레지스터가 가장 작음 ✅ 가격: 속도가 빠를수록 비싸므로, 레지스터가 가장 비싸고, 보조 저장 장치가 가장 저렴함 메모리 할당방식 ================== * 가변 분할 방식 : 프로세스가 크면 메모리도 크게 할당 * 고정 분할 방식 : 프로세스 크기와 상관없이 메모리를 할당 * 버디 시스템 : 가변 분할 방식과 고정 분할 방식을 혼합해 단점을 최소화 자료구조와 알고리즘재귀함수 ================== 자기 자신을 호출하는 함수 * 기저 조건(탈출 조건): 기저 조건이 없으면 무한 호출로 콜스택 메모리가 가득 차 프로그램이 강제 종료됨 버블정렬 ================== 앞에 있는 숫자와 옆에 숫자를 비교해서 자리를 바꾸는 알고리즘 * 장점 : 이해와 구현이 간단 * 단점 : 성능이 좋지 않음... 선택정렬 ================== 배열에서 첫 번째 원소를 기준으로 마지막 원소까지 비교하여 가장 작은 값을 찾은 후, 첫 번째 원소와 교환하는 과정을 반복하여 정렬하는 알고리즘 * 장점 : 이해와 구현이 간단 * 단점 : 성능이 좋지 않음... 회고정보처리기사 자격증 시험을 준비할 때 봤던 내용들을 이번 인프런 워밍업 클럽을 통해 제대로 이해할 수 있어서 좋았다. 그때는 "뭐.. 뭐지? 일단 이해는 된 것 같은데.. 음..?" 이런 느낌이었는데, 감자 강사님의 그림을 통한 설명을 보면서 "아, 이게 이거구나!" 하고 이해되는 순간이 많았다. 이번 주 공부는 확실히 채워지는 기분! 앞으로도 기대된다. 그렇게 뿌듯해하던 와중에... 만난 재귀... 알고리즘... 재귀... 어렵다... 내용은 이해했지만, 직접 구현하는 건 아직 쉽지 않다. 중간 점검 시간에 감자 강사님께서 "재귀 함수는 처음엔 어렵지만, 많이 연습하면 적응된다." 라고 말씀해주셔서 위로가 되었다. 연습이 곧 길이다!!! 💪🔥 화이팅~
2025. 03. 16.
0
인프런 워밍업 클럽 CS - 2주차 자료구조와 알고리즘 미션
자료구조와 알고리즘재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요? 기저조건이 없으면 함수가 계속해서 자기 자신을 호출하게 되어 무한 루프에 빠진다. 호출이 계속 쌓이면서 콜스택 메모리 공간이 꽉 차면서 프로그램이 강제 종료될 수 있다.기저조건을 잘못 설정하면 예상과 다른 동작이 발생할 수 있다.그러므로 기저조건을 잘 만들어보자! 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.function sumOdd(n){ // 재귀 로직 if (n 다음 코드는 매개변수로 주어진 파일 경로(.는 현재 디렉토리)에 있는 하위 모든 파일과 디렉토리를 출력하는 코드입니다. 다음 코드를 재귀 함수를 이용하는 코드로 변경해보세요.const fs = require("fs"); const path = require("path"); function traverseDirectory2(directory) { const files = fs.readdirSync(directory); // 현재 디렉토리의 파일 목록 가져오기 for (const file of files) { const filePath = path.join(directory, file); // 파일 경로 조합 const fileStatus = fs.statSync(filePath); // 파일 정보 가져오기 if (fileStatus.isDirectory()) { console.log('디렉토리:', filePath); traverseDirectory2(filePath); // 디렉토리면 재귀 호출 } else { console.log('파일:', filePath); } } } traverseDirectory2("."); // 현재 디렉토리 탐색
알고리즘 · 자료구조
2025. 03. 15.
0
인프런 워밍업 클럽 CS - 2주차 운영체제 미션
운영체제FIFO 스케줄링의 장단점이 뭔가요?- 장점단순하고 직관적이다.- 단점한 프로세스가 완전히 끝나야 다음 프로세스가 시작되기 때문에 실행시간이 짧고 나중에 도착한 프로세스가 실행시간이 길고 먼저 도착한 프로세스가 끝날 때까지 기다려야한다는 점이 단점이다. SJF를 사용하기 여러운 이유가 뭔가요?Burst Time이 긴 프로세스는 Burst Time이 짧은 프로세스가 먼저 실행되기 때문에 오랫동안 실행되지 않을 수도 있다. RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요? 타임 슬라이스에서 실행되는 프로세스의 처리량보다 컨텍스트 스위칭이 많이 발생해 오버헤드가 너무 크다. 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?프로세스가 타임 슬라이스를 초과하여 강제로 CPU를 뺏긴다면 CPU 사용이 많은 CPU Bound Process로 판단할 수 있고, 반대로 스스로 CPU를 반납한다면 비교적 CPU 사용이 적은 I/O Bound Process로 볼 수 있다. 공유자원이란무엇인가요?프로세스 간 통신을 할 때, 공동으로 이용하는 변수나 파일 등을 공유자원이라고 말한다. 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?1. 어떤 프로세스가 한 리소스를 점유했다면 그 리소스는 다른 프로세스에게 공유가 되면 안된다. (상호배제)2. 프로세스 A가 리소스를 점유하고 있을 때, 다른 프로세스 B가 리소스를 빼앗으면 안된다. (비선점)3. 프로세스가 리소스 A를 가지고 있는 상태에서 다른 리소스 B를 원하는 상태여야 한다. (점유와 대기)4. 점유와 대기를 하는 프로세스들의 관계가 원형을 이루고 있어야 한다. (원형 대기)
시스템 · 운영체제
・
운영체제