CS 전공지식 스터디 발자국 01
CS 전공지식 스터디 발자국 01
운영체제
운영체제 구조
커널 - 프로세스, 메모리, 저장장치 관리
사용자는 GUI, CLI로 커널에 접근
사용자 및 어플리케이션은 시스템 콜을 통해 커널에 접근 (커널을 보호)
복잡한 하드웨어 등은 디바이스 드라이버를 설치하여 커널에 접근하여 동작
컴퓨터 하드웨어와 구조
메모리 내장 방식 - 메모리 위에서 프로그램을 동작
CPU, 메모리, 하드디스크, 그래픽카드, 하드웨어
CPU (Central Processing Unit) - ALU, Control Unit, Register
메모리 종류 - RAM(Random Access Memory), ROM(Read Only Memory)
컴퓨터의 부팅 과정
ROM (바이오스): 주요장치 이상 확인 - MBR에 저장된 부트로더를 메모리로 가져와서 실행 - 운영체제 로드 - 프로그램은 메모리에 올라와서 운영체제가 관리
프로그램 & 프로세스
프로그램: 저장장치에 저장된 명령문의 집합체 (.exe)
프로세스: 실행 중인 프로그램 (저장된 프로그램이 메모리에 올라갔을 때의 상태) - 능동적인 존재
멀티프로그래밍 & 멀티프로세싱
멀티프로그래밍: 메모리에 여러 개 프로그램이 올라온 것
멀티프로세싱: CPU 관점으로 정의, CPU가 여러 개의 프로세스를 처리하는 것
동시에 이용한다 (멀티프로그래밍으로 프로그램을 여러 개 올리고, 멀티프로세싱을 이용해 여러 개의 프로세스를 처리하게 됨)
PCB
PCB(Process Control Blcok): 연결리스트 구조, 프로세스가 만들어지면 해당 프로세스의 정보를 가지고 있는 PCB가 생성
Context Switching
하나의 프로세스를 실행하는 도중에 다른 프로세스를 실행하기 위해 다른 프로세스로 전환
(인터럽트 발생) 원래 실행 중인 작업을 PCB에 저장하고 실행될 프로세스의 상태대로 다시 CPU 세팅
자료구조 및 알고리즘
자료구조
: 대량의 데이터를 효율적으로 관리할 수 있는 자료의 구조
알고리즘
: 문제를 해결하는 방식
시간복잡도
: 특정 알고리즘이 어떤 문제를 해결하는 데에 걸리는 시간
어떻게 평가할까?
시간을 측정하는 방식이 아닌, 코드 성능에 많은 영향을 주는 부분(반복문)을 보고 평가
Big-O (최악의 경우를 평가)
(ex) 배열에서 원하는 숫자를 찾는 알고리즘의 Big-O n번만에 데이터를 찾을 수 있음 → O(n)
O(1), O(n), O(log n), O(n!) 등
배열
인덱스로 접근하여 데이터 저장
연결리스트
각 Node가 서로 연결되어 있는 구조 (Head, Tail 존재)
스택(LIFO)
Last In First Out, 마지막으로 들어온 데이터가 먼저 나가는 구조
큐(FIFO)
First In First Out, 처음으로 들어온 데이터가 먼저 나가는 구조
덱 (양쪽으로 삽입 삭제 가능)
앞뒤로 삽입과 삭제가 가능한 구조
해시테이블
(Key, Value) 구조 - 해시함수를 적용하여 고유한 Index 생성
댓글을 작성해보세요.