진짜 개발자
본문 바로가기

CS(Computer Science) (총 73개)

자료구조 - 단일 연결리스트(Linked List) 단일연결리스트 - 모든 원소가 데이터, 링크 쌍으로 이루어져있고 이 링크를 통해 자신의 후속 원소와 연결되는 구조를 말한다.- 앞서말했듯이 연결구조는 원소의 삽입과 삭제가 용이하다(미리 지정된 연속된 주소공간으로 리스트가 표현되는 것이 아닌 각각의 원소가 다음 원소의 주소를 가지고 있기 때문에 삽입시에 공간을 늘리지 않아도 되기 때문이다.) 1. 삽입a) 제잎 앞에 원소 삽입1. 새로운 노드의 링크를 헤더의 다음 노드를 가리키도록 한다.2. Header의 링크를 새로운 노드를 가리키게 한다.*1 , 2번의 순서가 뒤바뀌면 Header의 다음노드를 가리키는 링크가 사라지기 때문에 1, 2번의 순서를 꼭 지켜야한다. 다음그림은 연결구조에서 맨앞에 원소의 삽입을 나타낸 그림이다*코드 12345678910111..
자료구조 - 순차표현 연결표현 *순차표현 - 메모리에 연속적인 공간을 할당받은 데이터이다. - 배열이 이에 해당된다 장점- 연속된 메모리로 표현되기 때문에 원소의 위치를 나타내는 인덱스가 곧바로 주소로 변경가능하므로 접근이 빠르다. 단점- 연속적인 공간을 할당 받기위해 처음에 크기가 정해지기 때문에 원소의 추가시 시간이 오래걸린다 (크기를 다시잡고 원래의 데이터를 옮기는 과정이 필요하기 때문이다.)- 원소의 삽입과 삭제가 어렵다 배열의 중간에 원소의 삽입과 삭제가 일어나면 필요한 만큼 뒤로 밀거나 당겨와야한다. 위의 그림은 int형 자료의 배열을 나타내는 그림이다. int형의 크기는 4byte이므로 메모리상에서 각각의 원소의 거리가 4만큼씩 떨어져 있는 것을 볼 수 있다. *연결표현 - 원소들이 저장된 메모리의 주소를 상관하지 않고 ..
스레드 개요 (참조 - http://www.jiniya.net/wp/archives/5856) 스레드 - CPU 이용의 기본단위 이다 - 같은 프로세스에 속한 다른 스레드들과 코드 , 데이터, 파일 등 운영체제의 자원을 공유한다. - 스레드ID, 프로그램 카운터(PC), 레지스터집합, 스택 으로 구성됨 배경 현대의 거의 모든 소프트웨어들은 다중 프로세스,스레드를 이용한다. 예를들어 서버에서는 실제 서비스는 자식 프로세스에게 맡기고 서버는 다음 요구를 받기위해 다시 대기를 할 수 있다 또한 웹서버에서는 여러 개의 클라이언트들이 동시에 접근할 수 있다. 이때 만약 웹서버가 단일 스레드 프로세스로 동작을 한다면 가장 마지막에 요청한 클라이언트는 자신이 서비스 받기 까지 엄청난 시간을 기다려야 할 것이다. 어떻게? 어차피 ..
프로세스 스케줄링 기존프로그래밍- CPU가 프로세스를 실행하다가 프로세스가 긴시간의 입출력을 요구하는 동안에는 CPU가 idle상태가 된다. 다중프로그래밍 - CPU의 이용률을 극대화 하기위해 항상 하나 이상의 프로세스를 실행하게 한다- 프로세스가 긴시간의 입출력을 요구하여 CPU가 놓여지면 다른 프로세스를 실행한다 이러한 패턴을 반복한다( 파일로부터 입출력을 해야하는 등의 물리적인 움직임이 필요하여 긴시간동안 CPU가 쉬는등의 경우) 시분할- 각각의 사용자들이 상호작용 할 수 있도록 CPU를 빈번하게 교체하여 할당하는 것 프로세스 스케줄링이란- 비다중프로그래밍 환경에서는 입출력과 같은 상황이 발생하게 되면 CPU는 긴 시간동안 유휴상태가 된다 반면에 다중프로그래밍 환경에서는 하나의 프로세스가 수행을 하다가 입출력을 해야..
프린터 큐 문제여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다.현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다.나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다.예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2 1 4 ..
Network - Application 계층) DNS 프로토콜 DNS란 – DNS란 도메인을 IP로 변환하거나 IP를 도메인으로 다시 변경해주는 것을 말한다 DNS가 없다면 우리가 외우고 있는 naver.com 등은 소용이 없고 naver.com IP를 외우고 다녔어야 한다. - DNS 메시지를 전달하기 위해 하위 트랜스포트 계층의 프로토콜을 이용하므로 어플리케이션 계층 프로토콜이다. 역할1) 호스트 별칭- 복잡한 호스트네임을 가진 호스트는 하나 이상의 별명을 가질 수 있다 예를들어, relay1.west-coast.enterprise.com 이라는 호스트는 enterprise.com과 www.enterprise.com 같은 2개의 별칭을 가질 수 있다. 2) 메일서버 별칭 3) 부하 분산- 같은 Domain에 대해서 여러 IP 지정이 가능하다 따라서 같은 도메인에..