Cpu 스케줄링
CPU 스케줄링 CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 어떤 프로세스를 다음에 처리할 지 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다. 따라서 상황에 맞게 CPU를 어떤 프로세스에 배정하여 효율적으로 처리하는가가 관건이다. Preemptive vs Non-Preemptive 1) P...
CPU 스케줄링 CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 어떤 프로세스를 다음에 처리할 지 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다. 따라서 상황에 맞게 CPU를 어떤 프로세스에 배정하여 효율적으로 처리하는가가 관건이다. Preemptive vs Non-Preemptive 1) P...
Blocking I/O & Non-Blocking I/O I/O 작업 I/O 작업은 Input/Output의 약자. 주로 파일 입출력을 다룰 때, 흔히 볼 수 있다. Ex) 두 대 이상의 컴퓨터끼리 서로 네트워크를 통해 통신을 한다고 가정할 때, 한 컴퓨터에서 출력(send)을 하고 다른 한 컴퓨터에서 입력(read)을 받는 과...
BFS & DFS 그래프 알고리즘으로, 문제를 풀 때 상당히 많이 사용되는 개념이다. 문제의 상황에 맞게 BFS와 DFS를 활용하면 된다. 여기서 사용되는 코드는 백준에 있는 DFS와 BFS 문제를 기반으로 한다. V : 정점, E : 간선 BFS 너비 우선 탐색이라 하며 BFS(Breadth-First Search)라 ...
Android에서 Enum 사용 Android에서 Enum 사용을 자제시키는 이유 Enum의 각 값은 객체이며, 각 선언은 단순히 객체를 참조하기 위해서 런타임 메모리를 사용한다. 따라서 정수 또는 문자열 상수보다 더 많은 메모리를 차지하게 된다. 게다가 단일 Enum을 추가하면 최종 DEX 파일의 크기를 증가시키기에 런타임시 오버헤드가 ...
Android - 인터뷰 질문 Q. Android의 4대 컴포넌트에 관한 설명 Q. Activity, Fragment의 차이점은? Q. Activity, Fragment의 생명주기에 대한 설명 Q. ListView vs RecyclerView Q. Intent에 관한 설명 Q. Android에서 Thread 구조에 대한 설명 Q. ANR이...
Activity Lifecycle onCreate() 액티비티가 만들어지고 나서 최초에 실행될 때 호출된다. (한 번만 호출된다.) 액티비티에 필요한 리소스 초기화, View들의 일반적인 상태 설정. 이전 상태가 저장되어 있을 경우, 번들 객체를 참조하여 이전 상태로 복원이 가능하다. 다음으로 onStart()가 호출된다. on...
4대 컴포넌트 Android 앱은 컴포넌트로 구성되어 있다. Activity, Service, Broadcast Receiver, Content Provider이다. 이를 4대 컴포넌트라 부른다. 각 컴포넌트들은 하나의 독립된 형태로 존재하며, 정해진 역할을 수행한다. 컴포넌트들 간의 상호 통신은 Intent라는 일종의 메시지 객체를 사용하여 상호...
3 way handshake TCP/IP 프로토콜을 이용하여 통신을 진행할 때, 두 종단 간 정확한 데이터 전송을 보장하기 위해 연결을 설정하는 과정이다. [연결 과정] SYN : Synchronize Sequence Number ACK : Acknowledgement 1) 클라이언트는 서버에 접속을 요청하는 SYN(a) 패킷을...