블로그
전체 62024. 10. 20.
1
[발자국] 인프런 워밍업클럽 CS 2기 3주차 발자국
학습 했던 내용 요약자료구조 및 알고리즘 버블정렬장점 : 이해와 구현이 간단하다.단점 : 성능이 좋지 않다.시간 복잡도 : O(n²)선택 정렬장점 : 이해와 구현이 간단하다.단점 : 성능이 좋지 않다.시간 복잡도 : O(n²)삽입 정렬장점 : 이해와 구현이 간단하다.단점 : 성능이 좋지 않다.시간 복잡도 : O(n²)병합 정렬장점 : O(nlog n) 성능으로 버블, 선택 , 삽입 정렬보다 성능이 훨씬 좋다.단점 : 재귀적인 기법으로 이해하기 어렵고, 구현하기 어렵다.시간 복잡도 : O(n logn)퀵 정렬장점 : 성능이 좋고, 병합 정렬보다도 적은 메모리 공간을 차지해 더 좋은 알고리즘으로 평가 받는다.단점 : 재귀적인 기법으로 이해하기 어렵고, 구현하기 어렵다.시간복잡도 : O(n logn)메모이제이션계산 결과를 저장해서 여러번 계산하지 않도록 하는 기법계산 결과를 해시 테이블에 저장하고 재사용해 속도가 빠르다 .하향식 계산 방식으로 문제를 해결한다. 타뷸레이션계산에 필요한 모든 값을 전부 계산 후 테이블에 저장하는 기법상향식 계산 방식으로 문제를 해결한다. 운영체제가상메모리컴퓨터의 물리적 메모리의 크기를 확장하기 위해 사용되는 기술 동적주소변환 (Dynamic Address Translation)메모리 관리자가 물리 메모리와 스왑 영역을 합쳐서, 프로세스가 사용하는 가상 주소를 물리 주소로 변환하는 것가변분할 방식을 이용하는 세그멘테이션 기법메모리 관리자내에 있는 Segment Table Base Register를 이용해 세그멘테이션 테이블 찾아내고, 이를 이용해 논리 주소를 물리 주소로 변환한다. 메모리를 가변적으로 분할 할 수 있지만, 가변 분할의 단점인 외부 단편화가 발생한다 .고정분할 방식을 이용한 페이징 기법메모리를 할당 할 때 정해진 크기의 페이지의 나누는 기법으로 메모리 관리자 내에 Page Table Base Register를 이용해서 물리 메모리에 있는 페이지 테이블을 찾고 , 이를 이용해 논리 주소를 물리 주소로 변환한다. 페이징은 외부 단편화가 발생하지 않는 대신, 내부 단편화가 발생한다. 페이지드 세그멘테이션 세그멘테이션과 페이징을 혼합해 장점을 취한 방식으로물리 메모리에 접근하기 위해서 메모리에 접근을 두 번 해야 한다는 단점이 있다. 1. 세그멘테이션 테이블을 참조할 때 2. 페이지 테이블을 참조할 때디맨드 페이징 (가져오기 정책)조만간 필요할 것 같은 데이터를 메모리로 가져오고, 쓰이지 않을 것 같은 데이터는 스왑영역으로 이동시키는 정책페이지 테이블 엔트리 PTE 페이지 테이블을 이루고 있는 한 행페이지 테이블 엔트리는 프레임 넘버로 구성되어 있는데, 실제로는 접근 비트, 변경 비트, 유효 비트, 읽기-쓰기-실행 비트 등 더 많은 비트 들이 있다.Page Fault Page Fault는 프로세스가 가상 메모리에 있는 페이지에 접근하려고 할 때, MMU가 페이지 테이블을 참조하여 해당 페이지가 물리 메모리에 존재하는지 확인하는 과정에서, 물리 메모리에 해당 페이지가 없는 경우 발생하는 인터럽트다.페이지 교체 정책페이지 교체 정책은 메모리에 빈 공간이 없을 때, 어떤 페이지를 선택해서 스왑 영역으로 보낼지(스왑 아웃)를 결정하는 운영체제의 정책이다.스왑 인은 스왑 영역에서 물리 메모리로 페이지를 가져오는 것이고, 스왑 아웃은 물리 메모리에서 스왑 영역으로 페이지를 보내는 것이다. 이러한 스왑 인과 스왑 아웃의 적절성은 운영체제가 판단한다.Random 무작위로 선택하는 방법FIFO 메모리에 들어온 지 가장 오래된 페이지를 선택하는 방법 Optimum 앞으로 가장 오랫동안 쓰이지 않을 페이지를 선택하는 방법LRU (Least Recently Used) 최근에 가장 사용이 적은 페이지를 선택하는 방법 Clock 알고리즘 : 접근비트 하나만 이용하고, 일정 시간 간격마다 모든 페이지의 접근비트를 0으로 초기화 한다.Enhanced Clock Algorithm : 변경 비트까지 보는 향상된 Clock 알고리즘2차 기회 페이지 교체 알고리즘 : FIFO 방식에서 자주 사용되는 페이지에게는 또 한 번의 기회를 주는 것. FIFO 방식과 동일하게 동작하지만, 만약 Page Fault 없이 페이지 접근에 성공했다면, 해당 페이지를 큐에 맨 뒤로 이동시켜 수명을 연장시켜주는 방식스레싱CPU 사용률을 높이려 했지만 오히려 더 떨어지는 상황이 나오는 것워킹셋현재 메모리에 올라온 페이지는 다시 사용할 확률이 높기 때문에 하나의 세트로 묶어서 메모리에 올리는 것 워킹셋은 프로세스가 준비 상태에서 실행 상태가 되는 컨텍스트 스위칭을 할 때 사용된다.회고일주일 동안 스스로 칭찬하고 싶은 점일주일치 진도대로 인강을 다 수강하고, 미션과 발자국도 기한내에 진행한 점. 아쉬웠던 점며칠은 복습이 잘 되었고, 며칠은 복습은 잘 하지 못한 점 보완하고 싶은 점 이해가 어려웠던 부분들은 더 찾아보면서 이해해보기 다음주 학습 목표한번 배웠다고 끝내는 것이 아니라 계속해서 복습을 진행하기 출처 : 그림으로 쉽게 배우는 운영체제 - 감자 , 그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)- 감자
알고리즘 · 자료구조
・
워밍업클럽
・
알고리즘
・
cs
・
운영체제
・
자료구조
2024. 10. 19.
1
[미션] 인프런 워밍업클럽 CS 2기 3주차 미션
운영체제메모리의 종류는 어떤것들이 있나요? 각 메모리의 특징도 함께 적어주세요. 레지스터, 캐시 , 메인 메모리(RAM), 보조저장장치 하드디스크 가 있습니다.레지스터는 가장 빠른 기억 저장소로, CPU내에 존재하고, 휘발성 메모리입니다.캐시는 레지스터와 메인 메모리, 사이에 존재하고, 휘발성 메모리입니다. 캐시는 메인 메모리에 있는 값을 레지스터로 옮기는 시간을 단축하기 위해 미리 데이터를 가져와 저장하는 곳 입니다. 메인 메모리는 실제 운영체제와 프로세스가 올라가는 곳으로, 휘발성 메모리입니다. 하드 디스크나 SSD보다는 속도가 빠르지만, 가격이 비싸기 때문에 실행중인 프로그램만 올립니다. 보조 저장장치 (HDD, SSD) 는 비휘발성 메모리로 가격이 저렴해, 작업한 파일들을 저장한다. 사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?경계 레지스터 CPU내에 존재하며 메모리 관리자가 사용자 프로세스가 경계 레지스터의 값을 벗어나는지 감시하고, 벗어날 경우 프로세스를 종료시킨다. 메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?가변 분할 방식 장점) 프로세스의 크기에 따라 메모리를 할당하는 방식으로, 메모리의 연속된 공간에 할당되기 때문에, 낭비되는 공간인 내부 단편화가 없다 . 단점) 외부단편화가 발생한다. 고정 분할 방식장점) 프로세스의 크기 상관 없이 메모리를 할당하는 방식으로, 비연속 메모리 할당으로 구현이 간단하고 오버헤드가 적다. 단점) 작은 프로세스도 큰 영역에 할당되어서 공간이 낭비되는 내부 단편화가 발생한다. CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?스레싱 CPU 사용률을 높이려하지만 오히려 더 떨어지는 상황이 나오는 것으로 ,CPU 사용률을 높이기 위해 멀티 프로그래밍 정도를 올리는데, 물리 메모리의 프레임을 할당하는데 한계가 있어 일부는 스왑영역에 저장하고, 이로 인해 Page Fault가 많이 발생하고, 그러면 CPU 작업 시간 보다 스왑 작업 시간이 더 길어 지고 CPU사용률이 떨어진다. 그럼 CPU 스케줄러는 CPU 사용률이 낮아져 더 많은 프로세스를 메모리에 올리게 되고 이 과정을 반복하다 보면 CPU 사용률이 0%에 가깝게 된다. HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요? 이유를 함께 적어주세요.HDD나 SSD는 컴퓨터를 실행시키는 데 꼭 필요한 것은 아니지만, 현실적으로 대부분의 컴퓨터 환경에서 운영체제와 데이터를 저장하는 데 매우 중요한 역할을 하기 때문에 필수적이다.HDD나 SSD가 아닌 다른 메모리는 속도가 빠르지만 가격이 너무 비싸고 휘발성이기 때문에, 비휘발성인 HDD나 SSD 같은 보조 기억장치에 운영체제를 저장하고 필요한 데이터와 소프트웨어를 로드하는 것이 저렴하면서도 효율적으로 컴퓨터를 이용할 수 있는 방법이다. 파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?free block list 덕분이다. 만약 특정 파일을 삭제한다면, 파일 시스템은 파일의 모든 정보를 지우는 것이 아니라 파일 테이블의 헤더를 삭제하고 free block list에 추가한다. 이렇게 처리하면 사용자는 파일이 삭제된 것처럼 느끼지만, 사용했던 블록의 데이터는 그대로 남아있기 때문에 포렌식을 통해 데이터를 복구할 수 있다. 자료구조와 알고리즘지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요.버블정렬장점 : 이해와 구현이 간단하다. 단점 : 성능이 좋지 않다. 시간 복잡도 : O(n²)선택 정렬장점 : 이해와 구현이 간단하다.단점 : 성능이 좋지 않다. 시간 복잡도 : O(n²)삽입 정렬장점 : 이해와 구현이 간단하다.단점 : 성능이 좋지 않다. 시간 복잡도 : O(n²)병합 정렬장점 : O(nlog n) 성능으로 버블, 선택 , 삽입 정렬보다 성능이 훨씬 좋다. 단점 : 재귀적인 기법으로 이해하기 어렵고, 구현하기 어렵다. 시간 복잡도 : O(n logn)퀵 정렬장점 : 성능이 좋고, 병합 정렬보다도 적은 메모리 공간을 차지해 더 좋은 알고리즘으로 평가 받는다. 단점 : 재귀적인 기법으로 이해하기 어렵고, 구현하기 어렵다. 시간복잡도 : O(n logn)메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요.타뷸레이션 메모이제이션은 재귀 호출을 사용하기 때문에 함수 호출에 따른 오버헤드와 메모리 비용이 큽니다. 반면, 타뷸레이션은 반복문을 사용하여 오버헤드가 적고, 메모리 사용량도 예측 가능하기 때문에 더 효율적입니다
알고리즘 · 자료구조
・
워밍업클럽
・
운영체제
・
자료구조
・
알고리즘
・
CS
・
미션
2024. 10. 13.
1
[발자국] 인프런 워밍업클럽 CS 2기 2주차 발자국
학습 했던 내용 요약자료구조 및 알고리즘 재귀 : 자기 자신을 참조하는 것, 탈출 조건 필수! (하노이탑)버블 정렬 : 앞에 있는 숫자와 옆에 있는 숫자를 비교해서 자리를 바꾸는 알고리즘.구현하기 쉽지만 성능O(n²)은 좋지 않음.선택 정렬 : 배열에 정렬되지 않은 영역에서 가장 작은 원소를 가장 첫번째로 가져온다. 완료된 영역은 더이상 참조하지않고, 정렬되지 않은 영역만 이 과정을 반복해 정렬하는 알고리즘.이해와 구현이 간단하지만, 성능O(n²)은 좋지 않음. 운영체제 프로그램을 실행시키면 메모리에 프로세스가 생성되고 각 프로세스에는 1개 이상의 스레드가 있다. 운영체제는 모든 프로세스에게 CPU를 할당, 해제하는데 이를 CPU 스케줄링이라 한다. 스케줄링 알고리즘에는 FIFO,SJF,RR, MLFQ 가 있다. FIFO (First In First Out) : 스케줄링 큐에 먼저 들어온 순서대로 CPU를 할당하는 방식이다. SJF (Shortest Job First) : Burst Time(작업시간)이 짧은 프로세스 먼저 실행되는 방식이다. RR (Round Robin) : 한 프로세스에게 일정 시간만큼 CPU를 할당하고, 할당 시간이 지나면 강제로 다른 프로세스에게 CPU 가 할당된다. 강제로 CPU를 뺏긴 프로세스는 큐의 가장 뒷부분으로 밀려나는 방식이다. MLFQ (Multi Level Feedback Queue) : 기본적으로 작은 크기의 타임 슬라이스를 선택하고, CPU 스케줄러에 의해 CPU가 뺏긴 상황이라면 , CPU Bound Process일 확률이 높으니 더 큰 타임 슬라이스를 할당 해주는 방식이다.공유된 자원에서 동기화 문제가 발생했고,이를 해결하기 위한 방법인 세마포어와 모니터방식이 있다. 공유자원 : 프로세스 간 통신을 할 때 공동으로 이용하는 변수나 파일1. 세마포어 : 운영체제가 가지고 있는 열쇠로, 공유자원을 한 프로세스만 이용하게끔 관리2. 모니터 방식 : 따로 운영체제가 처리하는 것이 아니라, 프로그래밍 언어 차원에서 지원하는 것.동기화 문제를 해결하기 위해 공유된 자원을 한 프로세스가 점유하게 만들었는데 교착상태(데드락) 발생교착상태 (데드락) : 여러 프로세스가 서로 다른 프로세스의 작업이 끝나기를 기다리다가 작업을 진행하지 못하는 상태교착상태가 발생하는 원인 : 공유자원해결방법 : 1. 가벼운 교착 상태 검출: 타이머 사용체크포인트를 만들어 저장하고, 타임 아웃시 마지막에 저장된 체크 포인트로 롤백2. 무거운 교착 상태 검출: 자원 할당 그래프 이용현재 운영체제에서 프로세스가 어떤 자원을 사용하는지 지켜보다가, 교착상태가 발생 시 해결순환 구조가 생긴 그래프를 통해 확인하고, 교착 상태를 일으킨 프로세스를 강제 종료시킨다. 회고일주일 동안 스스로 칭찬하고 싶은 점일중일치 진도대로 인강을 다 수강하고, 미션과 발자국도 기한내에 진행한 점.(인강을 수강하면서 정리한 내용)복습을 함께 진행한 점 아쉬웠던 점토요일까지로 미션과 발자국을 미리 완수하고 싶었는데, 그렇지 못한 점. 보완하고 싶은 점 이해가 어려웠던 부분들은 더 찾아보면서 이해해보기 다음주 학습 목표미션과 발자국을 마감기한보다 하루 일찍 완수하기 출처 : 그림으로 쉽게 배우는 운영체제 - 감자 , 그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)- 감자
알고리즘 · 자료구조
・
워밍업클럽
・
알고리즘
・
CS
・
발자국
・
운영체제
・
자료구조
2024. 10. 13.
1
[미션] 인프런 워밍업클럽 CS 2기 2주차 미션
운영체제FIFO 스케줄링의 장단점이 뭔가요?FIFO 스케줄링의 장점은 단순하고 직관적입니다.단점은 한 프로세스가 다 끝나야 다음 프로세스가 시작되기 때문에, 실행시간이 짧은 프로세스라도 늦게 도착할 경우, 먼저 도착한 실행시간이 긴 프로세스가 끝날때까지 기다려야 한다는 단점이 있습니다. SJF를 사용하기 여러운 이유가 뭔가요?SJF는 이론적으로 FIFO 보다 성능이 좋지만, 실제로 어떤 프로세스가 얼마나 걸릴지 예측하기 힘들기 때문입니다.또한 Burst Time이 짧은 프로세스가 먼저 실행되기 때문에, Burst Time이 긴 프로세스는 앞에 모든 프로세스를 기다리며 아주 오랫동안 실행이 안 될수도 있다는 문제 때문에 사용하기 어렵습니다. RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?타임 슬라이스가 아주 작으면 컨텍스트 스위칭이 자주 발생하기 때문에 타임 슬라이스에서 실행되는 프로세스의 처리량보다 컨텍스트 스위칭을 처리량이 더 커져 오버헤드가 커지게 되는 문제가 발생합니다. 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요? CPU를 사용하는 프로세스가 실행하다가 스스로 CPU를 반납하면 CPU 사용이 적은 것이니 I/O Bound Process 라고 인식하고,반대로 프로세스가 CPU 스케줄러에 의해 강제로 CPU를 뺏기는 상황이면 CPU 사용이 많은 것이니 CPU Bound Process 라고 인식합니다. 공유자원이란무엇인가요?프로세스간 통신을 할 때 공동으로 사용하는 변수나 파일입니다. 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요? 상호배제 : 한 프로세스가 한 자원을 점유하면, 다른 프로세스에게 공유되면 안됩니다.비선점 : 한 프로세스가 한 자원을 점유하는동안, 다른 프로세스가 이를 뺏을 수 없어야 합니다.점유와 대기 : 한 프로세스가 한 자원을 점유할때, 다른 프로세스도 같은 자원을 원해야 합니다.원형 대기 : 점유와 대기를 하는 프로세스의 관계가 원형이어야 합니다.이 중 한가지 조건도 충족하지 않을 경우, 교착상태가 발생하지 않습니다. 자료구조와 알고리즘재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?기저조건이 없을 경우, 재귀 함수를 탈출하지 못하고 계속해서 재귀함수가 호출된다. 즉, 콜 스택에 계속해서 함수가 쌓여서 메모리가 부족해져 프로세스가 강제 종료될 수 있습니다. 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.function sumOdd(n){ // 재귀 로직 if (n v2function sumOdd(n){ // 기저 조건 if(n v3 (java)public class SumOddClass{ public static int sumOdd(int n){ // 기저 조건 if (n
워밍업클럽
・
운영체제
・
자료구조
・
알고리즘
・
CS
・
미션
2024. 10. 06.
1
[발자국] 인프런 워밍업클럽 CS 2기 1주차 발자국
한줄 평자료구조 및 알고리즘 에서는 배열, 연결리스트, 스택(Stack), 큐(Queue), 덱(Deque), 해시 테이블(Hash Table), 셋(Set)등의 개념에 대해서 공부했다. 특히 실생활에서의 예를 들어 설명을 해주셔서 더욱 쉽게 이해할 수 있었다.운영체제는 거의 처음 공부해보는 것이어서 낯선 부분도 있었고, 새롭게 알게 되어 흥미로운 부분도 있었다. 학습 했던 내용 요약자료구조 및 알고리즘 배열: 읽기, 쓰기와 같은 참조에는 O(1)의 성능을 가지고, 삭제에서는 O(n)의 성능을 가진다.연결리스트: 배열과 달리 크기가 동적이지만, 데이터 참조 및 삭제에서 모두 O(n)의 성능을 가진다.스택 : FILO 구조를 가진다.큐 : 스택과 반대로 FIFO 구조를 가진다.덱 : 데이터 삽입 제거를 head, tail 모두에서 이룰 수 있는 자료구조.해시 테이블 : (Key, Value)로 데이터를 저장하는 자료구조. 해시 함수는 키를 해시 값으로 변환하는 함수인데, 해시 함수는 키를 고르게 분포시키고, 충돌을 최소화해야 한다.셋 : 데이터의 중복을 허용하지 않는 자료구조이다.운영체제운영체제의 구조 : 커널, 사용자(인터페이스를 통해), 애플리케이션(시스템 콜통해), 하드웨어(드라이버 통해)컴퓨터 하드웨어 구조 : CPU와 메모리 필수!CPU의 구조 : 산술논리 연산장치, 제어장치, 레지스터메모리 구조 : RAM, ROM인터럽트 : 폴링방식을 해결한 방식 프로세스와 쓰레드 : 프로세스(실행중인 프로그램), 프로세스(운영체제가 작업을 처리하는 단위)PCB : 운영체제가 프로세스를 관리할 때 이를 활용프로세스 상태 : 생성, 준비, 실행, 대기 , 완료컨텍스트 스위칭 : 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해, 실행 중인 프로세스의 상태를 저장하고, 다른 프로세스의 상태값으로 교체하는 작업회고일주일 동안 스스로 칭찬하고 싶은 점일중일치 시간표 대로의 진도대로 인강을 다 수강하고, 미션과 발자국도 기한내에 진행한 점.아쉬웠던 점토요일까지로 미션과 발자국을 미리 완수하고 싶었는데, 그렇지 못한 점. 일주일의 진도는 밀리지 않았지만, 하루하루 진도는 정확히 일치하게 수행하지는 못한 점보완하고 싶은 점매일 시간표대로 진도를 나가고 싶다. 구현 강의부분에서 스스로 먼저 해보고 강의를 들었어야 했다는 아쉬움이 있다.인강을 듣고, 추가로 궁금한 사항이나 활용해보는 부분을 더 진행하고 싶다.다음주 학습 목표진도를 누락하지 않고 인강을 수강하기구현 부분을 먼저 스스로 해보고, 강의 듣기개념에 대해서 더 깊게 찾아보거나, 코드로 활용가능한 부분들은 더 활용 해보기 출처 : 그림으로 쉽게 배우는 운영체제 - 감자 , 그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)- 감자
알고리즘 · 자료구조
・
워밍업클럽
・
운영체제
・
자료구조
・
알고리즘
・
CS
・
발자국
2024. 10. 06.
1
[미션] 인프런 워밍업클럽 CS 2기 1주차 미션
운영체제 1. while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 } 위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요? 인터럽트 방식을 이용해야합니다.CPU가 입출력 관리자에게 입출력 명령을 내리고 CPU는 다른 작업을 계속 하고, 입출력관리자가 입출력이 완료됐을 때, CPU 에게 신호를 주면, CPU는 그 신호를 받아 인터럽트 서비스 루틴 ISR을 실행시켜 작업을 완료합니다. 즉, CPU가 주기적으로 진행상황을 계속 확인할 필요가 없기 때문에 성능의 이점이 생깁니다. 프로그램과 프로세스가 어떻게 다른가요?프로그램은 하드디스크 등과 같은 저장장치에 저장된 명령문의 집합체입니다.프로세스는 프로그램이 메모리에 올라갔을 때, 실행중인 프로그램을 프로세스라고 합니다.멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?멀티프로그래밍은 메모리에 여러개의 프로세스가 올라온 것이고 메모리에 관점에서 정의된 것 이고,멀티프로세싱은 CPU가 여러개의 프로세스를 처리하는 것으로 CPU관점에서 정의한 것 입니다. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?운영체제는 프로세스의 정보를 가지고 있는 PCB를 사용해 프로세스를 관리한다. 운영체제는 프로세스가 만들어지면 해당 프로세스의 정보를 가지고 있는 PCB 을 만들고 저장 하고,(PCB에는 포인터, 프로세스 상태, 프로세스 ID, 프로그램 카운터, 레지스터 정보, 메모리 관련 정보, CPU스케줄링 정보등이 저장된다.)PCB들은 연결리스트라는 자료구조로 저장되고, 운영체제는 프로세스가 종료되면 연결리스트에서 해당 프로세스의 PCB를 제거한다. 컨텍스트 스위칭이란 뭔가요?컨텍스트 스위칭이란 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해, 실행 중인 프로세스의 상태를 저장하고, 다른 프로세스의 상태값으로 교체하는 작업입니다. 현재 작업 중이던 프로세스의 작업 내용을 PCB에 저장하고, 실행 할 프로세스의 PCB를 가져와 그 정보를 참조하여 CPU가 다시 세팅되어 이어서 실행됩니다. 자료구조와 알고리즘 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요. 배열을 선택할 것입니다.보통 학생의 정보는 학기 초에 일괄적으로 저장한 다음, 그 이후에 정보를 확인하고 찾는 작업이 주를 이루고 학생의 정보가 추가되거나 수정되는 일은 자주 일어나지 않기 때문입니다. 학생 번호는 인덱스로 두어 인덱스로 학생의 정보를 쉽게 찾을 수 있을 것 같다고 생각하기 때문에 읽기 기능이 O(1)의 성능을 가진 배열을 이용하는 것이 좋을 것 같습니다. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요. Queue 자료구조를 선택할 것입니다.Queue는 FIFO(first in first out)으로 먼저 들어간 데이터가 먼저 쓰이는 데이터 구조이기 때문에 주문 들어온 순서대로 처리하기 위해 적합하다고 판단 되기 때문입니다.
알고리즘 · 자료구조
・
워밍업클럽
・
운영체제
・
자료구조
・
알고리즘
・
CS
・
미션