Computer science

    프로세스, 스레드

    프로세스, 스레드

    프로세스 (Process) 프로그램은 실행중이지 않은 정적인 상태의 코드 파일이다. 운영체제는 프로그램을 실행 시키고 메모리에 올리는데 이를 프로세스라고 한다. 즉, 프로세스는 메모리에서 실행중인 프로그램의 작업이다. 프로세스는 프로그램이 메모리에 올라갈 때 독립된 메모리 영역을 할당(Code, Data, Heap, Stack) 받고 PCB라는 프로세스를 정보를 담는 블록을 받는다. 메모리 Code : 프로그램의 명령을 구성하는 코드 자체 메모리 영역 Data : static과 같은 정적 변수, 전역 변수, 배열 등을 갖는 영역 Heap : new 키워드 같은 동적으로 할당 되는 메모리 영역 Stack : 지역 변수, 파라미터, 리턴 값을 관리하는 메모리 영역 스레드 (Thread) 스레드는 프로세스의 ..

    ArrayList, LinkedList

    ArrayList, LinkedList

    ArrayList ArrayList는 배열을 이용한 리스트이다. 따라서 배열의 특징과 비슷하다. 인덱스를 가지고 데이터를 접근한다. 인덱스를 통한 Random Access가 가능하므로 특정 데이터를 검색하는데 LinkedList보다 속도가 빠르다. 데이터의 삽입 혹은 삭제 시 인덱스의 위치를 맞춰줘야 하므로 LinkedList에 비해 속도가 느리다. 배열은 사이즈를 고정적으로 할당하지만, ArrayList는 값을 동적으로 삽입하는 것이 가능하다. LinkedList LinkedList는 각 노드별 앞의 노드와 뒤의 노드를 참조하는 참조값을 가지고 있다. 각 노드별 앞, 뒤 노드를 참조하고 있기 때문에 새로운 노드를 삽입하거나 노드를 삭제하는 경우 위치에 관계없이 ArrayList보다 빠른 연산이 가능하다..