[자료구조] 자료구조
·
CS 지식/[자료구조]
자료구조란? 프로그램에서 사용하기 위한 자료를 기억장치의 공간 내에 저장하는 방법과 저장된 그룹 내에 존재하는 자료 간의 관계, 처리 방법 등을 연구 분석하는 것 선형 구조(Linear Structure) 배열(Array) 선형 리스트(Linear List) 스택(Stack) 큐(Queue) 데크(Deque) 비선형 구조(Non-Linear Structure) 트리(Tree) 그래프(Graph) 자료구조의 활용 정렬(Sort) 검색(Search) 인덱스(Index) 배열(Array) 동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖고 있는 집합 정적인 자료구조 데이터 삭제 시 삭제된 공간이 빈 공간으로 남아있어 메모리의 낭비가 발생함 반복적인 데이터 처리 작업에 적합 선형 리스트(Linear L..
[자료구조] HashMap
·
CS 지식/[자료구조]
HashMap Map인터페이스에 속해있는 컬렉션 키 : 값 - 1 : 1 HashMap 선언 import java.util.HashMap; public class HashMapDemo { public static void main(String[] args) { HashMap hm = new HashMap(); // 타입 설정x Object 입력 HashMap i = new HashMap(); // Integer, Integer 타입 설정 HashMap i2 = new HashMap(i); // i의 값을 i2에 카피 HashMap i3 = new HashMap(10); // 초기용량 지정 HashMap i4 = new HashMap() {{ // 변수 선언 + 초기값 지정 put(1, 100); put(..
CPU 스케줄링
·
CS 지식/[운영체제]
1. 스케줄링 조건 : 오버헤드 ↓ / 사용률 ↑ / 기아 현상 ↓ 목표 Batch System: 가능하면 많은 일을 수행. 시간(time) 보단 처리량(throughout)이 중요 Interactive System: 빠른 응답 시간. 적은 대기 시간. Real-time System: 기한(deadline) 맞추기. 2. 선점 / 비선점 스케줄링 선점 (preemptive) : OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 (처리시간 예측 어려움) 비선점 (nonpreemptive) : 프로세스 종료 or I/O 등의 이벤트가 있을 때까지 실행 보장 (처리시간 예측 용이함) 3. 프로세스 상태 선점 스케줄링 : Interrupt, I/O or Event Completion, I/O ..
데드락 (DeadLock, 교착 상태)
·
CS 지식/[운영체제]
두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태를 말함 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 데드락이 일어나는 경우 프로세스1과 2가 자원1, 2를 모두 얻어야 한다고 가정해보자 t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원2를 얻음 t2 : 프로세스1은 자원2를 기다림 / 프로세스2는 자원1을 기다림 ⇒ 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠짐 → 이것이 바로 DeadLock 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생 한 프로세스가 자원을 요청했을 때, 동시에 그 자원을 사용할 수 없는 상황이 발생할 수 ..
프로세스 & 스레드
·
CS 지식/[운영체제]
프로세스 프로그램을 메모리 상에서 실행 중인 작업 ⇒ 작업 중인 프로그램 스레드 프로세스 안에서 실행되는 여러 흐름 단위 기본적으로 프로세스마다 최소 1개의 스레드 소유(메인 스레드 포함) 프로세스는 각각 별도의 주소 공간 할당 (독립적) Code : 코드 자체를 구성하는 메모리 영역(프로그램 명령) Data : 전역 변수, 정적 변수, 배열 등 초기화 된 데이터는 data 영역에 저장 초기화 되지 않은 데이터는 bss 영역에 저장 .data : 전역 변수 또는 static 변수 등 프로그램이 사용하는 데이터를 저장 .BSS : 초기값 없는 전역 변수, static 변수가 저장 .rodata : const같은 상수 키워드 선언 된 변수나 문자열 상수가 저장 Heap : 동적 할당 시 사용 (new(), ..
운영체제(OS, Operating System)
·
CS 지식/[운영체제]
운영 체제사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어종료 : Windows, Linux, UNIX, MS-DOS 등운영체제의 목적사용자와 하드웨어 사이의 인터페이스를 제공해 효율적으로 응용프로그램이 동작하도록 지원시스템 자원을 효율적으로 관리하여 응용프로그램이 원활하게 동작할 수 있도록 함운영체제의 코어(핵심) 부분을 커널(Kernel)이라고 하는데, 일반적으로는 커널에 여러가지 기능(라이브러리, 시스템 프로그램 등)이 추가된 상태를 통칭해서 운영체제라고 함컴퓨터 시스템 간략 구조도운영체제의 역할1. 프로세스 관리프로세스, 스레드 / 스케줄링 / 동기화 / IPC 통신2. 저장장치 관리메모리 관리 / 가상 메모리 / 파일 시스템3. 네트워킹TCP/IP / 기타..