전체 글 132

근거리 무선통신 (블루투스, 비콘, NFC)

부제: 블루투스, 비콘, NFC 알아보자 1. 블루투스란 무엇인가? 단거리에서 무선으로 데이터를 전송하는 기술이다. 1994년, 에릭슨이란 회사에서 무선기술이 필요해서 연구를 시작하여 무선 통신 규약을 만들게 된다. 이후 1999년도에 인텔, IBM, 노키아, TOSHIBA가 SIG라는 그룹을 생성해서 시장화할 수 있는 블루투스 기술을 개발했다. 이름은 모든 전자기기의 무선통신을 통합한다는 의미에서 덴마크의 국왕 "해럴드 블루투스"에서 따왔다 고 한다. (스칸디나비아 반도 내 노르웨이와 덴마크를 통합했다고 한다.) 블루투스의 로고도 해럴드 불루투스의 첫 이니셜 H, B를 북유럽의 눈문자로 합친 모양이라고 한다. 2. 어떻게 동작하는가? 주파수를 이용한 통신이다. 블루투스는 2.4 ~ 2.48GHz 사이의..

[문자 인코딩] 유니코드란 무엇인가?

부제: 유니코드란 무엇인가? 컴퓨터는 이진수만 안다. 컴퓨터와 내가 문자를 입력하고 출력할 수 있도록 해주는게 바로 문자 코드다. 그리고 문자코드와 숫자를 매칭시킨 표를 문자표라고 한다. 대표적으로 아스키 코드표가 있다. 아스키 코드표 (ASCII Codes) = American Standard Code for Information Interchange 알파벳, 숫자, 특수 문자에 고유의 숫자를 부여한 코드표로 7Bit 조합이라 128개의 문자를 표현한다. 아스키 코드표의 A가 American을 뜻한다고 한다. 즉, 영어권 국가를 위해서 만들어진 룰이란 것이다. 아스키 코드가 표현할 수 있는 문자가 제한적이다보니 한글이나 중국어 등을 표현할 수 없었다. 이에 다른 국가의 언어들도 문자표를 만들 필요가 생..

대우어플라이언스 :: 무설치 식기세척기 장점과 단점

대우어플라이언스 무설치 식기세척기 구입해서 2개월 사용했다. 매일 매일 사용하면서 느낀 장점과 단점을 솔직하게 풀어본다. 😀장점 1. 설거지에서 90% 해방된다. (2인 식구 기준) 2인 식구가 사용하기에 딱맞게 그릇이 들어간다. (밥공기 2개, 국공기 2개, 접시 4개, 컵 2개, 수저, 수저받침 정도) 그러나 그 이상으로 넣는건 어렵다. 2. 부피가 작아 공간 차지를 많이 안한다. 좁은 부엌에도 문제 없다. 우리집이 진짜 주방이 좁은데 딱 맞게 들어갈 정도로 부담없는 사이즈 3. 설치가 따로 필요 없다. 물을 직접 넣어서 사용하는 방식. 전세집이라 싱크대 타공 불가했는데 그 걱정에서 벗어나게 해주었다. 한번 돌릴 때 총 5L를 넣어야 하는데 나는 미리 페트병 2L짜리 3개에 물을 담아서 식기세척기 옆..

리뷰 2020.10.28

[C++][백준 2178] 미로탐색 - BFS를 이용한 최단거리

[백준 2178] 미로탐색 문제를 읽고 어떤 알고리즘을 써야하는지 힌트를 얻어보자. 내가 구해야하는 것은, (1, 1)에서 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수 => BFS!! 참고) BFS : 너비 우선 탐색 (Breadth-Frist Search) 1. What? : 루트 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법 2. When use? : 두 노드 사이의 최단 경로 or 임의의 경로를 찾을 때 사용한다. 3. How? : 큐(Queue), 노드 방문 여부(isVisited[idx]) 이용 ✏️ 그래프 탐색 DFS, BFS 기본 구현을 복습은 아래 링크에서 [C++] DFS와 BFS 구현하기 TIP. 어떤 자료구조를 사용하여 데이터를 관리할지 먼저 생각하자. 1. Que..

[C++] DFS와 BFS 구현하기

1️⃣DFS : 깊이 우선 탐색 (Depth-First Search) 1. What? : 루트 노트에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법 2. When use? : 모든 노드를 방문하고자 하는 경우 사용한다. 3. How? : 스택(Stack) or 재귀함수, 노드 방문 여부(isVisited[idx]) 이용 2️⃣BFS : 너비 우선 탐색 (Breadth-Frist Search) 1. What? : 루트 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법 2. When use? : 두 노드 사이의 최단 경로 or 임의의 경로를 찾을 때 사용한다. 3. How? : 큐(Queue), 노드 방문 여부(isVisited[idx]) 이용 ✔︎프림(Prim)과 다이스트라(D..

[운영체제] 스레드의 개념 정리하기

지금까지는 1. 프로세스의 개념과 2. 프로세스 내에서 메모리 구조와, 3. 프로세스 간에는 어떻게 통신할 수 있는지, 4. CPU에 어떤 프로세스를 할당할지를 운영체제가 어떻게 결정하고 스케줄링하는지 등등을 공부했다. 공부했던 내용이 기억나지 않을 땐, 리마인드를 위해 포스팅 다시 읽기! [운영체제] 프로세스 개념 정복하기 [운영체제] 프로세스 생성과 종료 / 요약 정리 [운영체제] 프로세스 스케줄링 개념 정리 스레드 (Thread) : 바늘질할 때 쓰는 실을 뜻함 프로세스 내에서 실행되는 프로그램 코드의 흐름을 말한다. 하나의 프로세스 내에는 반드시 하나 이상의 스레드가 존재한다. 각 스레드는 스레드ID, 프로그램 카운터(PC), 레지스터 집합, 스택을 독립적으로 소유한다. 같은 프로세스 내에 스레드..

[운영체제] IPC, 프로세스 간 통신 방법

프로세스 간 통신 (Interprocess Communication, IPC) 컴퓨터 시스템에서 프로그램은 혼자 독자적으로 수행할 수도 있지만 프로그램들 사이에 정보를 교환함으로서 계산 속도를 증가시키거나 편의성을 향상시킬 수 있다. 각 프로세스는 자신의 독립적인 메모리 공간을 가지고 다른 프로세스들에 의해 침범당하지 않도록 보호하고 있기 때문에 프로세스 간 통신하기 위해서는 별도의 메커니즘이 필요하다. 기본적인 프로세스 개념과 CPU 스케줄링이 막연하게 느껴질때, 아래 포스팅을 보며 다시 복습하자. [운영체제] 프로세스 개념 정복하기 [운영체제] 프로세스 생성과 종료 / 요약 정리 [운영체제] 프로세스 스케줄링 개념 정리 [운영체제] 프로세스 스케줄링 알고리즘 정리 1. 공유 메모리 (shared me..

[운영체제] 프로세스 스케줄링 알고리즘 정리

프로세스의 개념과 스케줄링에 관한 기본기가 부족하다면, 아래 포스팅 먼저 복습하고 오자. [운영체제] 프로세스 개념 정복하기 [운영체제] 프로세스 생성과 종료 / 요약 정리 [운영체제] 프로세스 스케줄링 개념 정리 프로세스 스케줄링 알고리즘 1. FCFS (First-Come, First-Served), 선입 선처리 Ready queue를 FIFO로 구현하여 들어온 순서대로 CPU를 할당한다. 구현이 제일 간단하고, 이해하기 쉽다. 비선점 스케줄링으로 Ready queue에 있는 프로세스 입장에서는 평균 대기시간이 길어질 수 있다. * 비선점 스케줄링 : 현재 실행 중인 프로세스가 자발적으로 CPU 사용을 중단하는 경우에만 CPU 스케줄링을 수행하는 방법 * 선점 스케줄링 : 운영체제의 판단에 따라 현재..

[운영체제] 프로세스 스케줄링 개념 정리

프로세스 스케줄링 = CPU 스케줄링 운영체제가 수행해야할 역할 중 가장 핵심적인 역할이다. 각각의 운영체제는 자기만의 강점이 될 수 있는 스케줄링 알고리즘을 가지고 있다. 스케줄링 큐 (queue) 운영체제가 이해하는 프로세스는 PCB이기 때문에, 스케줄링 큐는 PCB의 링크드 리스트로 관리되고 있다. 여기까지 이해가 되지 않는다면, 프로세스에 대한 기본적인 개념을 다지자. [운영체제] 프로세스의 개념 정복하기 [운영체제] 프로세스의 생성과 종료 / 요약 정리 1. Job queue : 시스템 안에 존재하는 프로세스들 2. Ready queue : 메모리 상 존재하며 실행 준비가 되어 있는 프로세스들 3. Device queue : 입출력 장치의 사용을 기다리는 프로세스들 위 그림처럼 프로세스들은 스케..

[Swift] Process 클래스로 다른 Application 실행 / 프로세스 제어하기

프로세스 제어를 위한 시스템 API지난번 프로세스 제어를 위한 시스템 API 내용을 먼저 정리하자. 프로세스 관련 지식이 부족하다면, [운영체제] 프로세스의 개념 정복하기 [운영체제] 프로세스의 생성과 종료 / 요약 정리 1. fork()부모 프로세스에서 호출 되면, 자식 프로세스는 독립적인 메모리 공간에 부모와 동일한 내용이 복사된다.부모의 PCB 내용까지 복제되어 자식 프로세스는 fork() 함수부터 다시 수행된다.때문에 fork()를 부모 프로세스에서 호출하면 return을 부모에게서 한번, 자식에게서 한번이렇게 2번 받게 된다는 것이 중요하다. fork()의 return부모 프로세스새로 생성된 자식 프로세스의 PID자식 프로세스0시스템 호출 실 패 시-1 2. wait()부모 프로세스에서 호출 시..