![[인프런 워밍업 클럽_3기 CS] 첫번째 발자국 🐾](https://cdn.inflearn.com/public/files/blogs/46c903e5-207c-4fb5-b799-801448e80d7b/336224.png)
[인프런 워밍업 클럽_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 기초에 대한 전반적인 흐름과 이해를 할 수 있었다.
아직 이해를 완벽하게 하지 못한 부분도 있지만, 시간을 내어 다시 강의를 들으며 복습하고 싶은 마음이 가득하다.. 🐾
댓글을 작성해보세요.