inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 클럽 스터디 3기] 1주차 발자국

서희원
0

 

1주차 학습 내용


 

운영체제


운영체제의 역사

50년대 이전

image(출처: IBM - The punched card)

시대별 발전

 

기본 구조

하드웨어

 

운영체제

 

주요 개념

프로세스와 쓰레드

컨텍스트 스위칭

 

쓰레드

 

CPU 스케줄링

운영체제가 프로세스들에게 CPU를 할당했다가 해제했다가 하는 행위

어떻게 하면 최대한 효율적으로 이를 할 수 있는지를 고민한 것이 스케줄링

스케줄링 알고리즘에는 FIFO , SJF , RR , MLFQ 등이 있고 현대에는 MLFQ 를 가장 많이 사용한다.

 

자료구조와 알고리즘


시간복잡도

특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간

실제로 시간을 재는 것이 아닌 코드에서 성능에 많은 영향을 주는 부분을 찾아 예측한 것

많은 영향을 주는 부분 == 반복문

빅오를 가장 많이 사용

image(출처: https://qc-at-davis.github.io/QCC/Classical-Computation/Computational-Complexity/big-O-chart.png)

 

자료구조

스택

First In Last Out

계속 쌓인다고 생각하면 됨 (수직으로)

연결리스트에서 무조건 첫번째 인덱스에 인서트

 

First In First Out

먼저 줄을 선 손님이 먼저 계산 → 큐!

운영체제 프로세스의 작업요청 → 큐! (CPU가 순서대로 꺼내서 처리 → FIFO 스케줄링)

연결리스트에 head에다가 인서트

제거할때는 가장 뒤에서부터 하면됨

 

데이터의 삽입과 제거를 head와 tail 두 군데서 자유롭게 할 수 있는 자료구조

덱을 이용하면 스택과 큐를 다 구현할 수 있음

 

해시테이블

Hash / Map / HashMap / Dictionary

해시함수로 테이블의 인덱스를 새로 만드니까 해시테이블

Key만 알면 Value에 O(1)의 성능으로 할 수 있음

해시함수 로직에 따라 충돌이 날 수 있음

→ 연결리스트로 구성해서 데이터들을 연결

이렇게 연결리스트로 연결되어있을때는 O(n)의 성능 (처음부터 찾아가야 하니깐)

 

해시함수의 성능이 매우 중요

→ 데이터들을 골고루 분산 시켜줄 수 있는 함수가 좋은 함수

 

중복을 허용하지 않는 자료구조 / HashSet

 

 

회고


👏 칭찬하고 싶은 점

꾸준히 점심시간과 퇴근시간 이후를 사용하여 강의를 듣고 구현을 직접 해봤다.

 

😅 아쉬웠던 점

구현을 할 때 직접 생각보다는 따라쓰고 그 후에 이해하기 바빴던 것 같다.

 

🔄 보완하고 싶은 점

앞으로는 구현을 할 때는 먼저 생각해서 구현을 해보고 다음에 강의를 들으면서 확인하고 수정하는 방향으로 하면 좋을 것 같다.

 

🎯 다음주의 목표

 

발자국 인프런워밍업클럽스터디

답변 0