[인프런 워밍업 클럽_3기 CS] 첫번째 발자국 🐾

[인프런 워밍업 클럽_3기 CS] 첫번째 발자국 🐾

📌 이 글은 워밍업 클럽 3기 감자님의 CS 강의인 ‘그림으로 쉽게 배우는 자료구조와 알고리즘’과 ‘그림으로 쉽게 배우는 운영체제’를 학습하며 정리한 내용을 담고있습니다. 🙇‍♂


1⃣ 자료구조와 알고리즘

📌 1. 자료구조 개요

  • 자료구조(Data Structure): 데이터를 효율적으로 저장하고 관리하는 방법

     

  • 알고리즘(Algorithm): 문제를 해결하는 명확한 방법

  • 자료구조와 알고리즘은 시간복잡도를 고려하여 적절히 선택해야 함.

 

📌 2. 주요 시간복잡도 표기법

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

 

  1. Big-Ω (Ω, 최선의 경우) :

    1. 한 번에 찾을 경우 -> 최소 실행 시간

  2. Big-O (O, 최악의 경우) :

    1. 배열을 끝까지 탐색해야 할 경우 -> 최대 실행 시간

    2. O(n) : 선형 시간 알고리즘

  3. Big-Θ (Θ, 평균의 경우) :

    1. 배열 길이의 중간 정도 탐색할 경우 -> 평균 실행 시간

  4. O(1) (상수 시간 알고리즘) :

    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. 프로세스의 상태 변화

  1. 생성 상태 (New)

    1. PCB 생성 및 메모리에 적재

  2. 준비 상태 (Ready)

    1. CPU 할당을 기다리는 상태

  3. 실행 상태 (Running)

    1. CPU에서 실행 중

  4. 대기 상태 (Waiting)

    1. 입출력 요청으로 인해 대기

  5. 완료 상태 (Terminated)

    1. 실행이 종료된 상태

 

📌 4. 컨텍스트 스위칭

  • CPU가 실행 중인 프로세스를 변경하는 과정

  • PCB의 정보 변경

  • CPU 오버헤드 발생 가능

 

📌 5. 프로세스 생성과 종료

  • fork() : 부모 프로세스가 자식 프로세스를 생성

  • 좀비 프로세스 : 종료된 프로세스가 완전히 제거되지 않은 프로세스

 

📌 6. 멀티프로그래밍 vs 멀티프로세싱

유니프로그래밍 : 하나의 프로세스만 실행

멀티프로그래밍 : 여러 개의 프로세스를 올려 실행

멀티프로세싱 : 여러 개의 CPU에서 병렬로 실행

 


3⃣ 회고

imageimageimageimage

이미지 조절이 안된다..

이미지에서 보이는 것처럼 3월 7일자 강의를 듣지 못하였다. 🥲 (다음 주에 시간을 내어 강의를 학습할 예정입니다 !)

첫 주차를 통해 CS 기초에 대한 전반적인 흐름과 이해를 할 수 있었다.

아직 이해를 완벽하게 하지 못한 부분도 있지만, 시간을 내어 다시 강의를 들으며 복습하고 싶은 마음이 가득하다.. 🐾

 

댓글을 작성해보세요.

채널톡 아이콘