본문 바로가기

CS BASIC

(59)
[Windows] 시리얼 통신과 WinAPI의 활용 개요 Overview 시리얼 통신은 오래된 기술로 여겨지지만, 여전히 장비 제어, 임베디드 시스템, 테스트 장비 등에서 널리 쓰이는 주요한 기술 중 하나입니다. 또한, 한 번 설정하면 그 이후에 크게 신경 쓸 부분이 없다는 점에서도 입지를 견고히 한 대표적인 통신 규격 중 하나이기도 합니다. Windows 환경에서는 이를 제어하기 위하여 WinAPI를 활용하여 구현하는 것이 일반적입니다. 대표적인 함수로는 ‘CreateFile’이 있는데 이는 Windows PC에 장착된 주변 기기의 시리얼 포트(COM)와 통신을 개시 및 필요한 설정을 준비하여 안정적으로 데이터를 송수신하게 할 수 있습니다. 오늘은 이 ‘CreateFile’ 함수를 중심으로 이에 필요한 몇 가지 설정 함수 및 그 용례에 대해서 프로그래..
시리얼 통신(Serial Communication) 정리: 하드웨어 규격과 그 응용 사례 개요 Overview 오늘날 우리가 사용하는 대부분의 컴퓨터 장치는 서로 데이터를 주고받기 위해 다양한 통신 방식을 사용합니다.세상에 존재하는 다양한 전자 기기 들은 이러한 통신 표준을 준수하며 산업별 특성에 맞는 기술이 적용되고 있습니다. 그 중에서도 직렬 통신(Serial Communication)은 비교적 오래된 통신 방식임에도 불구하고, 여전히 임베디드 시스템, 디버깅 환경, 산업 장비 등 여러 분야에서 꾸준히 사용되고 있는 표준 통신 인터페이스 중 하나입니다. 직렬 통신은 이름 그대로 데이터를 한 비트씩 차례대로 전송하는 방식으로, 과거 하드웨어 자원이 제한적이던 시절에 등장하였습니다. 병렬 통신에 비해 속도는 느릴 수 있지만, 구현이 단순하고 안정성이 높다는 장점 덕분에 오랫동안 표준적인 통..
[CS BASIC] Windows USB 저장 장치와 파일 시스템 개요(Overview) 오늘은 Windows의 파일 시스템과 USB 저장 장치에 대해서 알아보도록 하겠습니다.컴퓨터를 구성하는 하드웨어 장치에는 CPU, RAM, 전원 공급 장치와 같이 기계가 잘 동작하도록 돕는 요소들도 있지만,SSD, HDD, USB 저장 장치와 같이 프로그램이나 자료 등이 저장되는 장치도 존재합니다. 오늘은 이러한 저장 장치에 대해 질문과 답변 형식으로 컨텐츠를 구성해보았습니다.  Q. 파일 시스템이란 무엇이며, 왜 고안되었을까? 파일 시스템(File System)은 운영체제가 데이터를 저장하고 관리하는 구조적인 방식입니다.쉽게 말하면, 저장 장치(USB, SSD, HDD 등)에서 데이터를 어떻게 저장할지, 파일을 어떻게 조직할지 정하는 규칙을 파일 시스템이라고 부릅니다.  http..
[운영체제] 네트워크 위상(Topology)과 분산 시스템 개요(overview)  오늘은 지난 포스팅에 이어서 분산 처리 시스템에서 사용되는 네트워크의 위상과 분산 시스템에 대해서 알아보도록 하겠습니다.  1.3. 네트워크 위상(Topology)과 안전성 분산 처리 시스템 내의 노드들은 여러 가지 물리적인 방법으로 연결될 수 있는데, 이러한 물리적 연결 형태를 위상(topology)라고 합니다.분산 시스템은 네트워크 관점에서 그 연결 상태에 따라 여러 형태의 그래프로 묘사될 수 있는데 다음과 같은 기준에 의하여 각각의 구조에 대하여 평가할 수 있습니다. 기본 비용 : 시스템 내의 노드를 연결하는데 드는 비용통신 비용 : 한 노드로부터 다른 노드에게로 메시지를 전달하는 데 걸리는 시간 및 비용신뢰성 : 시스템 내의 통신 회선이나 노드 중 하나가 고장이 발생하더라..
[운영체제] 네트워크 운영체제와 프리미티브 개요(Overview) 오늘은 네트워크 운영체제와 프리미티브라는 주제에 대하여 다뤄보도록 하겠습니다.본격적으로 네트워크 운영체제에 대해 알아보기 전 아래의 그림을 살펴보도록 하겠습니다.   위 그림은 네트워크를 통해 상호 연결된 전형적인 컴퓨터 네트워크 구조를 표현한 그림입니다. 위 그림에서 각각의 컴퓨터들은 호스트(host)라고도 말하며 네트워크를 통해 상호 연결된 상태입니다.  각각의 호스트들은 이러한 구조를 통해 네트워크를 사용하려는 사용자에게 적절한 서비스를 제공할 수 있으며 이 과정에서 상호간에 통신이 원활하게 이루어질 수 있도록 통신 프로세서(processor)로 연결되어 있습니다.  그리고 각각의 호스트 컴퓨터 시스템에서 운영체제와 사용자 프로세스를 포함하는 하나의 구성요소 그룹을 통신 서브..
[운영체제] 교착 상태(Dead Lock)의 관리 기법 개요(Overview)지난 포스팅에서는 교착상태의 기본적인 정의와 그 필요조건에 대해서 다루었습니다. https://1-hee.tistory.com/149 [운영체제] 교착 상태(Dead Lock)와 필요 조건개요(Overview)  다중 프로그래밍 환경에서 여러 프로세스들은 제한된 수의 자원을 사용하려고 서로 경쟁할 수 있습니다.대기 중인 프로세스는 자 신이 필요로 하는 자원이 대기중인 또 다른 프1-hee.tistory.com  이번 포스팅에서는 마지막에 소개했던 교착 상태를 해결하기 위한 다양한 관리 기법들 교착상태를 예방, 방지, 발견, 회복하는 방법에 대해 이어서 다루도록 하겠습니다.  1.6. 교착상태의 예방 교착 상태(Dead Lock)는 앞서 살펴본 네 가지 필요 조건에 의해 발생될 수 있..
[운영체제] 교착 상태(Dead Lock)와 필요 조건 개요(Overview)  다중 프로그래밍 환경에서 여러 프로세스들은 제한된 수의 자원을 사용하려고 서로 경쟁할 수 있습니다.대기 중인 프로세스는 자 신이 필요로 하는 자원이 대기중인 또 다른 프로세스에 의해 점유되어 있다면 다른 상태로 영원히 변할 수 없는 상황이 발생하기도 합니다. 예를 들어, 4개의 테이프 구동기와 2개의 프로세스를 갖고 있는 시스템의 경우 각각의 프로세스는 다른 프로세스가 자신의 자원을 해제할 때까지 기다려야 하는데, 이러한 상황을 가리켜 교착 상태(Dead Lock)라고 합니다. 다중 프로그래밍 시스템에서는 이러한 상황을 사전에 방지하고 자원을 원활하게 공유되도록 하는 것이 모든 운영체제의 공통된 목적이기 때문에 각각의 프로세스들에게 할당된 특정 자원에 대하여 독점적인 권한을 가지..
[운영체제] 세마포어(Semaphore) 개요(Overview) 이번 포스팅은 이전 게시글에서 다루었던 병행 프로세스와 Dekker 알고리즘에 이어 조금 더 복잡한 문제를 다루기 위한 세마포어(Semaphore)에 대해서 다루도록 하겠습니다.  https://1-hee.tistory.com/147 [운영체제] 병행 프로세스와 Dekker 알고리즘개요(Overview)  운영체제에서 '병행 프로세스'란 여러 개의 프로세스나 스레드가 '동시에' 실행되는 것처럼 보이는 상태를 말합니다. 실제로 단일 CPU 시스템에서 '병행' 또는 '병렬'로 일을 처리한1-hee.tistory.com   1. 세마포어(Semaphore) 여러 프로세스들이 조금 더 복잡하게 얽힌 경우에는 상호배제(mutual exclusion) 문제를 해결하기 어려운 경우가 존재합니다..