블로그
전체 4#카테고리
- 알고리즘 · 자료구조
#태그
- 워밍업클럽
- 자료구조
- 알고리즘
- 운영체제
- CS
2024. 10. 13.
1
[발자국] 인프런 워밍업 클럽 2기 CS 2주차
강의 수강 내용 및 회고 운영체제공유자원, 임계구역, 세마포어, 모니터, 데드락, 메모리 등 간만에 들어보는 단어들이 많아서 반가웠다. 예전에 업무중 세마포어란 단어가 나왔을 때 뭐였는지 생각이 잘 안나서 멈칫했던 적이 있었어서 더 반가웠던 것 같다. 이번주 강의를 들으면서 어설프게 알고 있던 운영체제 이론들을 머릿속에서 체계적으로 정리할 수 있어서 좋았다. 그림으로 한단계 한단계 눈으로 보는 것이 이해에 무척 도움이 되었고, 미션을 해결하기 위해 강의 내용을 떠올릴 때도 좀 더 차근차근히 생각할 수 있었다. 자료구조와 알고리즘재귀와 정렬에 대해서 배웠다. 재귀는 대학생 때부터 계속 그랬듯이 이해가 된거 같으면서도 안된 것 같고.. 적용을 할 수 있을 것 같으면서도 헷갈리고..의 반복이었다. 그래서 강의에서 재귀를 적용할 수 있는 문제유형에 대해 설명해준 부분이 무척 마음에 들었다. 하향식 문제풀이를 적용하는 문제에 재귀를 적용하는 방법을 배웠고, 실제로 하노이탑 문제가 손쉽게 풀리는 것을 보고 나니 재귀 알고리즘이 이전보다 더 매력적으로 느껴졌다. 역시.. 나머지는 연습을 하는 수 밖에 없겠다. 정렬 알고리즘은 솔직히 머리로 생각할 때는 '넘 쉬운걸ㅋ'하고 넘어갔는데, 막상 코드로 구현하려니 인덱스를 설정하는데 있어서 실수를 조금 했다. 머리로만 생각하는 것보다 코드로 한번 구현해보는게 훨~씬 도움이 많이 된다는 걸 또 한번 느낀다. 칭찬할 점아침에 눈뜨자마자 학습을 진행해봤는데, 생각보다 공부도 잘되고 아침시간이 윤택해져서 좋았다. 저녁에 공부를 하려고 하면 피곤하기도 하고 지쳐서 조금 우울하게 공부하는데, 아침에 공부를 하니까 집중이 더 잘되는 느낌이었다. 그리고 확실히 강의 내용을 듣고난 뒤에 의문인 점들을 검색해보니 이전에는 이해하는데 좀 더 오래걸렸던 자료도 훨씬 더 빨리 읽히는 느낌이 들었다. 공부한 보람이 느껴지는 부분~ 아쉬웠던 점이번주는 매일 차근차근히 강의를 듣고 진도를 나가고 싶었는데, 평일에 너무 바빠서 결국 금토일에 몰아서 학습할 수 밖에 없었다. 다행히 강의 내용이 그렇게 많지 않기도 하고, 이미 아는 내용이 절반 이상이라 학습하는데 문제는 없었지만.. 마지막주는 좀 더 차분히 학습할 수 있었으면... 보완할 점저번주에 다짐했던 대로 강의를 들으면서 요약정리를 해보기는 했는데, 중간까지 하다가 속도가 너무 느려서 우선 강의 내용을 이해하는데 좀 더 초점을 맞춰서 학습했다. 나머지 정리는 강의를 한번 더 복습하면서 찬찬히 해야겠다.
알고리즘 · 자료구조
・
워밍업클럽
・
자료구조
・
알고리즘
・
운영체제
2024. 10. 13.
0
[미션] 인프런 워밍업 클럽 2기 CS 2주차
운영체제FIFO 스케줄링의 장단점이 뭔가요? 장점: 단순하고 직관적임단점: 한 프로세스가 완전히 끝나야 다음 프로세스가 실행될 수 있기 때문에, 실행시간이 짧고 늦게 도착한 프로세스가 실행시간이 길고 빨리 도착한 프로세스의 작업을 기다려야한다. 즉, CPU 사용률이 떨어지는 결과가 발생한다. SJF를 사용하기 여러운 이유가 뭔가요?어떤 프로세스가 얼마나 실행될지를 계산하는 것이 어렵고, 실행시간이 긴 프로세스는 실행시간이 더 짧은 프로세스가 생길 때마다 대기해야하므로 아주 오랫동안 실행되지 않는 문제가 발생할 수 있다. RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요? 컨텍스트 스위칭이 너무 자주 발생해서 오버헤드가 커지는 문제가 발생한다. 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?CPU 자원을 프로세스가 스스로 반납하면 I/D Bound Process일 확률이 높다고 판단하고, CPU 자원을 강제로 뺏기는 프로세스는 CPU Bound Process일 확률이 높다고 판단한다. 공유자원이란무엇인가요?프로세스들 간에 공유되는 자원을 말한다. (변수, 파일 등) 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?상호배제, 비선점, 점유와 대기, 원형대기위 4개의 조건을 모두 만족해야 교착상태에 빠질 수 있다. 자료구조와 알고리즘재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?재귀함수가 멈추지 않고 무한루프에 빠져서 계속 동작하다가 콜스택 메모리를 초과하면 프로세스가 강제 종료된다. 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.# Python def sumOdd(n): if n function sumOdd(n){ // 재귀 로직 if (n
알고리즘 · 자료구조
・
워밍업클럽
・
자료구조
・
알고리즘
・
운영체제
2024. 10. 06.
1
[발자국] 인프런 워밍업 클럽 2기 CS 1주차
강의 수강 내용 및 회고 운영체제대학생때 다 배웠던 내용이지만 막상 실무를 하면서는 잘 생각하지 않아서 까먹었던 개념들을 다시 복습할 수 있어서 좋았다. 이미 알고 있다고 생각했던 개념도 그림과 함께 설명을 들으니 훨씬 쉽게 느껴지고 이해도 빠르게 할 수 있었다. CPU, 메모리, 하드디스크 등등.. 각각이 하는 역할을 명확히 구분할 수 있게 되는 시간이었고, 헷갈렸거나 혼용해서 쓰던 개념도 정리할 수 있는 시간이었다. 자료구조와 알고리즘이것도 운영체제와 마찬가지로 강의 커리큘럼 내용만 보고 처음에는 '음.. 대충 다 알고 있는 내용이라서 금방하겟군' 이라고 생각했었는데, 막상 직접 구현해보려고 하니 중간중간 헷갈리는 부분이 있었다. 역시 머리로만 이해하고 사용하는 것과 실제로 구현해보는 것은 하늘과 땅 차이였다. 개념 수업을 들으면서 평소에 코드를 구현할 때 어떤 자료구조를 사용할지 고민했던 순간들이 떠오르면서 좀 더 나은 방향성을 찾아보는 시간이었다. 칭찬할 점운영체제 강의 같은 경우 실습이 없었기 때문에 출퇴근 시간을 이용해서 강의를 들었는데, 생각보다 아침시간에 집중도 잘되었고, 업무하면서도 강의 들었던 내용을 상기하면서 업무를 할 수 있어서 수업내용을 체화하는데 도움이 더 되었던 것 같다. 그리고 일단.. 업무시간 이외에 공부를 하지 않던 내가 따로 시간을 내서 공부를 했다는 것에 가장 큰 박수를 ~ 아쉬웠던 점초반에 강의 수강 진도표를 잘못 읽고 운영체제 강의만 다 듣고 일주일 진도를 끝냈다고 생각해서 몇일을 날려먹었다.막판에 미션을 작성하려고 보니 알고리즘 강의 진도도 있다는 걸 깨닫고 막판에 몰아서 듣다보니 실습 부분을 더 깊게 생각할 시간이 부족했다. 다음주 강의를 수강하면서 이번주에 더 깊게 생각하지 못했던 부분을 보완해야겠다. 보완할 점역시 미뤄듣지 말고 매일매일 나눠서 꾸준히 수강을 하도록 보완해야겠다.그리고 이번주는 강의 내용을 따로 요약정리하지는 않았는데 다음주에는 수업 후 요약정리를 좀 해봐야겠다.
알고리즘 · 자료구조
・
워밍업클럽
・
운영체제
・
알고리즘
・
자료구조
・
CS
2024. 10. 06.
1
[미션] 인프런 워밍업 클럽 2기 CS 1주차
CS 1주차 미션운영체제1.Cwhile(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다.이 방식은 폴링방식입니다.1초마다 체크하기 때문에 성능에 좋지 않습니다.이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?인터럽트. 플레이어가 스킬을 사용하고 있다는 신호가 오기 전까지 자원을 다른 곳에 쓸 수 있음2. 프로그램과 프로세스가 어떻게 다른가요?프로그램은 코드가 디스크에 저장되어 있는 상태프로세스는 프로그램이 메모리에 올라가 있는 상태3. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?멀티프로그래밍은 메모리 관점에서 메모리에 여러 프로세스가 올라가있는 것멀티프로세싱은 CPU 관점에서 CPU가 메모리에 올라가있는 여러 프로세스를 시분할 처리하는 것4. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?PCB를 이용해 프로세스의 상태를 관리한다5. 컨텍스트 스위칭이란 뭔가요?운영체제는 CPU를 효율적으로 사용할 수 있도록 여러 프로세스를 번갈아가면서 CPU를 할당하는데, 이때 각 프로세스의 작업 진행 상황을 유지할 수 있도록 PCB의 상태를 업데이트하는 것을 말한다.자료구조와 알고리즘1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요?이유를 함께 적어주세요.해시테이블. 학생을 식별할 수 있는 key값(학생번호 등)을 이용해 학생정보를 저장하면 그 key값을 통해 해당 학생의 정보를 저장하고 관리할 수 있다. 관리 프로그램은 데이터에 빠르게 접근할 수 있어야 하고, 수정이 용이해야 할 것 같아서 해시테이블을 선택했다.2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.큐. 큐는 먼저 들어온 데이터를 먼저 처리하는 FIFO 방식이기 때문에 주문이 들어온 순서대로 처리하는 작업에 알맞은 자료구조이다.
알고리즘 · 자료구조
・
워밍업클럽
・
운영체제
・
알고리즘
・
자료구조
・
CS