개발/잡다개발 82

Deadlock

DeadLock이란 프로세스가 자원을 얻지 못할 때 발생합니다. 프로세스가 서로 필요한 리소스 할당을 기다릴 때 데드락이 발생합니다. Mutual Exclusion : 한개 자원은 비공유되어야 합니다. Hold and Wait : 하나의 자원을 보유하고 다른 자원을 기다려야합니다. No preemtion : 자원을 선점할 수 없고, 자원을 hold하고 있는 프로세스가 종료되어야 합니다. Circular Wait : 자원할당 Cycle이 존재해야 합니다. 데드락 처리 - 교착상태 예방 및 회피 - 교착 상태 탐지 및 회복 - 교착 상태 무시 데드락 예방 - Mutual exclusion 부정 - Hold and wait 부정 - No preemption 부점 - Circular wait 자원 탐지 자원을 ..

개발/잡다개발 2020.05.07

OS - 2

fork()는 프로세스를 만듭니다. 프로세스가 fork () 오퍼레이션을 사용하여 새 프로세스를 작성할 때 다음 중 어떤 상태가 상위 프로세스와 하위 프로세스간에 공유됩니까? Shared memory segments만 공유됩니다. 스택 및 힙은 새로 작성된 프로세스에 작성됩니다. 원격 프로시저 호출(영어: remote procedure call, 리모트 프로시저 콜, RPC)은 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게하는 프로세스 간 통신 기술이다. 다시 말해, 원격 프로시저 호출을 이용하면 프로그래머는 함수가 실행 프로그램에 로컬 위치에 있든 원격 위치에 있든 동일한 코드를 이용할 수 있다. 일부 디지털 통신 프로토콜에서 ACK는 데이터가 성공적으로 수신..

개발/잡다개발 2020.05.05

OS

Clustered System 이란 여러대의 컴퓨터가 결합된 형태고 multiprocessor system이란 다양한 CPU가 결합된 하나의 시스템입니다. Clustered System과 Multiprocessor system이 결합되려면 공유된 저장소나 매번 업데이트가 필요합니다. CPU의 실행로드가 증가하지 않게 Direct memory access가 I/O장지체 직접 메모리 액세스가 사용됩니다. - CPU는 디바이스와 어떻게 인터페이스하여 전송을 조정합니까? DMA(direct memory access)는 전송 대상에 대한 포인터를 포함하는 레지스터를 설정하고, DMA컨트롤러는 버스에 주소를 배치하여 전송을 수행합니다. - 메모리 작업이 완료된 시점을 CPU가 어떻게 알 수 있습니까? DMA 컨트롤..

개발/잡다개발 2020.05.05

아두이노란

아두이노가 무엇인지 검색해보면, 물리적인 세계를 감지하고 제어할 수 있는 인터랙티브 객체들과 디지털 장치를 만들기 위한 도구로, 간단한 마이크로컨트롤러(Microcontroller) 보드를 기반으로 한 오픈소스 컴퓨팅 플랫폼과 같은 소프트웨어 개발 환경을 말한다고 설명되어 있습니다. 직접 아두이노를 이용해서 프로그래밍 해본 경험으로는 간단한 컴퓨터라고 생각하면 됩니다. 예를 들면 우리는 드론을 만들고 싶습니다. 드론을 만드는데 드론을 조작하고 제어할 수 있어야 하는데. 드론에 컴퓨터를 직접 넣어서 프로그래밍을 할 수는 없습니다. 때문에 아두이노에 프로그래밍을 해서 사용합니다. 아두이노는 오픈소스로 가격이 저렴하며, 예시로 든 드론 이외에 - 로봇 - IOT기기(센서) - 앱으로 제어되는 도구 - 컨트롤러..

개발/잡다개발 2020.04.12

IP

IP header에 checksum이라는 것이 있습니다. 이 checksum이 무엇인지 알아보겠습니다. Header Checksum의 경우, 패킷이 유효함을 계산하고 올바른 패킷인지 알아봅니다. engress filtering - 외부로 나가는 데이터의 속성을 검사하는 것입니다. 이 것을 이용하면 조직 내부의 위험이 밖으로 나가지 않습니다. ingress filtering - 외부에서 내부로 유입되는 데이터를 검사합니다. 외부에서 들어오는 패킷이 위조되었는지 안되었는지를 확인합니다.

개발/잡다개발 2020.04.09

CPU

컴퓨터 CPU에 대해서 알아보겠습니다. CPU(Central Processing Unit)입니다. 한국말로는 중앙처리장치라고 할 수 있겠네요 CPU에서 하는 가장 기본적인 작업은 계산입니다. 사람으로 치면 두뇌의 역할이라고 볼 수 있습니다. CPU에는 코어라는 것이 존재하는데, 처리회로의 핵심 부분으로써 이전에는 CPU에 1개만 있던 것이지만, 시간이 지나면서 4개, 6개, 8개씩 다양한 코어가 적용되고 있습니다. 컴퓨터와 마찬가지로, 모바일에도 여러개의 코어가 적용되고 있습니다. 11번가에서 CPU를 검색해보면 아래와 같은 정보가 있습니다. CPU의 코어 갯수는 결국 1개의 코어가 1개의 일만 처리한다고 생각하면 되는데 코어가 4개면은 한꺼번에 4개를 처리할 수 있는 것입니다. CPU에 대해서 알아보다..

개발/잡다개발 2020.03.29

임베디드 시스템이란

임베디드 시스템에 대해서 알아보겠습니다. 우리가 흔히 임베디드(Embedded) 라는 것을 이야기하는데 임베디드 시스템은 말 그대로 하면, 이미 내장되어 있는 시스템입니다. 그러니깐, 요즘에 IOT 기기, 예를 들면 리모컨을 누르면 커튼이 자동으로 쳐 진다던가, 아니면 방의 파티션이 움직이던가 하는 기기들을 보면 이 기기들이 제어되는 프로그램이 안에 내장되어 있습니다. 이 것들을 임베디드 시스템이라고 합니다. 쉽게 생각하면, 제어하기 위한 아주 조그만한 컴퓨터가 있다고 생각하면 됩니다. 이 것이 임베디드 시스템입니다. 위의 예시에서 들었듯이 동작되는 대부분의 물건에 있습니다. 컴퓨터, 전화기, 냉장고 등에 모두 다 들어있다고 생각해도 됩니다. 결론적으로 제어를 목적으로 하는 아주 작은 기계(컴퓨터)라면 ..

개발/잡다개발 2020.03.22