[자료구조] 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 / 기타..
[자료구조] 해시(Hash)
·
CS 지식/[자료구조]
해시(Hash) 데이터를 효율적으로 관리하기 위해 임의의 길이 데이터를 고정된 길이의 데이터로 매핑하는 것 해시 함수를 구현하여 데이터 값을 해시 값으로 매핑함 Lee → 해싱함수 → 5 Kim → 해싱함수 → 3 Park → 해싱함수 → 2 ... Chun → 해싱함수 → 5 // Lee와 해싱값 충돌 결국 데이터가 많아지면, 다른 데이터가 같은 해시 값으로 충돌나는 현상이 발생 → ‘collisoin’ 현상 ⇒ 그래도 해시 테이블을 쓰는 이유는? 적은 자원으로 많은 데이터를 효율적으로 관리하기 위해 하드디스크나, 클라우드에 존재하는 무한한 데이터들을 유한한 개수의 해시값으로 매핑하면 작은 메모리로도 프로세스 관리가 가능해짐 언제나 동일한 해시값 리턴, index를 알면 빠른 데이터 검색이 가능해짐 해..