교착상태란?

 

두 개 이상의 작업이 서로 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 못하는 상태를 가리킨다.

 

예를 들어 하나의 사다리가 있고, 두 명의 사람이 각각 사다리의 위쪽과 아래쪽에 있다고 가정한다. 이때 아래에 있는 사람은 위로 올라가려고 하고, 위에 있는 사람은 아래로 내려오려고 한다면, 두 사람은 서로 상대방이 사다리에서 비켜줄 때까지 하염없이 기다리고 있을 것이고 결과적으로 아무도 사다리를 내려오거나 올라가지 못하게 되듯이,

전산학에서 교착상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제다 - 위키백과 교착상태

 

위키백과에서 예를 들어서까지 잘 설명해놓았네요.

 

교착상태가 일어나려면 아래와 같은 4가지 조건들이 필요합니다.

 

상호배제 프로세스들이 자원을 배타적 점유한다.

점유와 대기 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다린다.

비선점 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없다.

환형 대기 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다.

 

 

우선 교착상태를 막는 것은 아직 불가능합니다..

 

하지만 다음과 같은 방법들로 대응을 하고 대부분의 접근들은 4가지 조건들 가운데 하나(특히 환형 대기)를 막음으로써 동작합니다.

 

교착상태의 예방 - 조건의 부정

교착상태의 회피 - 은행가 알고리즘, 자원 할당 그래프 알고리즘

교착상태의 발견 - 교착상태 발견

교착상태의 회복 - 프로세스 중지, 자원 선점

 

'전자공학 > 임베디드' 카테고리의 다른 글

인터럽트 우선순위 (폴링, 데이지체인)  (0) 2019.10.18
폴링과 인터럽트 비교  (0) 2019.10.17
2019년 제6회 임베디드 기사 필기 후기  (0) 2019.09.22
RTC란??  (0) 2019.04.21
임베디드란?? Embedded  (1) 2019.04.20

6회 임베디드 기사 필기를 보고 왔습니다.

 

임베디드 기사는 정보가 별로 없더라고요

 

시험 쳤는데 교실에 임베디드 기사 응시자는 3명 ㄷㄷ

 

공부하는데 리눅스에 관한 내용만 많아서 생각했던거와 달랐던 시험입니다.

 

 

필기 과목은 4개의 과목이 있습니다.

 

1. 임베디드 하드웨어 2. 임베디드 펌웨어 3. 임베디드 플랫폼 4. 임베디드 소프트웨어

 

 

대비는 임베스트 사이트를 통해 했는데

 

임베디드 기사 대비해주는 사이트가 이곳이 거의 유일한 곳 같습니다.

 

사이트 만족도는 보통입니다. 

 

 

6회 시험은 이때동안의 기출 시험보다 특히 소프트웨어에서 자바 문제가 많이 나와서

 

당황했습니다.

 

원래 소프트웨어 파트에서 점수를 많이 땄었는데 이번엔 아니었습니다.

 

 

시험 당일날 오후 2시경에 가답안이 나옵니다.

 

시험은 10시~12시인데 11시부터 퇴실 가능합니다.

 

 

'전자공학 > 임베디드' 카테고리의 다른 글

인터럽트 우선순위 (폴링, 데이지체인)  (0) 2019.10.18
폴링과 인터럽트 비교  (0) 2019.10.17
교착상태(deadlock)  (0) 2019.10.14
RTC란??  (0) 2019.04.21
임베디드란?? Embedded  (1) 2019.04.20

임베디드 개발을 하다보면 RTC라는 용어가 나옵니다.

 

RTC(Real Time Clock) 실시간시계 에 대해서 알아보겠습니다.

 

실시간 시계(實時間時計, 문화어: 실시간기계기구, Real Time Clock, RTC)는 현재의 시간을 유지시키는 컴퓨터 시계이다. 이 용어가 개인용 컴퓨터, 서버, 임베디드 시스템의 장치를 일컫기도 하지만, RTC는 정확한 시간을 유지해야 하는 거의 모든 전자 기기에 존재한다. 

RTC 없이 시간을 유지할 수 있지만[1], RTC를 사용하면 다음과 같은 이점이 있다:

  1. 전력 소비가 낮다.[2] (대체 전력에서 실행할 때 중요하다)

  2. 기본 시스템을 시간이 중요한 작업에서 떼어 놓을 수 있다.

  3. 가끔 다른 방식보다 더 정확하다. (개인용 컴퓨터의 RTC가 가끔은 덜 정확해도)

- 위키백과

 

RTC가 왜 필요한지 예를 들어서 설명해 드리겠습니다.

https://www.banggood.com/ko/DC-5V-3W-Mini-Portable-Pocket-LCD-Digital-FM-Radio-Speaker-USB-TF-AUX-MP3-Player-p-1358986.html?cur_warehouse=CN

 

라디오에 현재 시간을 나타내는 LCD(화면)가 있다고 생각해봅시다.

 

여기서 라디오에 전원을 끄면 시간은 어떻게 흘러갈까요??

 

만약 라디오의 MCU(전자제품의 뇌 같은 부품)에서 시간을 계속 증가시켜줘야한다면 전류가 많이 소모될 것입니다.

 

이를 방지하기 위해 따로 RTC를 장착하여 RTC에서만 따로 시간을 증가시켜주고

 

디오의 전원을 켜면 MCU와 RTC의 통신을 통해 MCU가 현재 시간을 얻고 화면에 현재시간을 출력해줄 수 있습니다.

 

 

이렇게 전자기기의 전원이 차단되어도 RTC는 소형 배터리나 슈퍼 캐패시터로 시간을 계속 흘러가게 해줍니다.

 

그리고 전자기기의 전원이 켜지면 RTC를 통해 현재의 시간을 알 수 있죠.

 

이렇게 소비전력을 낮추고 현재의 시간을 정확하게 알게 해주는 부품이 RTC입니다.  

임베디드 소프트웨어, 임베디드 시스템, 임베디드 프로그래밍 등등

 

임베디드라는 말을 많이 들어보셨을 겁니다.

 

 

임베디드 시스템(영어: embedded system, 내장형 시스템)은 기계나 기타 제어가 필요한 시스템에 대해, 제어를 위한 특정 기능을 수행하는 컴퓨터 시스템으로 장치 내에 존재하는 전자 시스템이다. 즉, 임베디드 시스템은 전체 장치의 일부분으로 구성되며 제어가 필요한 시스템을 위한 두뇌 역할을 하는 특정 목적의 컴퓨터 시스템이다. 전자 하드웨어와 기계 부분을 포함하는 전체 장치의 일부로 내장되었다는 의미에서 임베디드 단어가 사용되었다. 

 

나무위키 내용입니다.

위와 같은 보드를 많이 보셨을 겁니다.

 

위에서 4번과 같은 칩의 시스템을 임베디드 시스템이라고 부릅니다.

 

특정 기능을 위해 칩에 프로그래밍을 하여 장치에 내장시키는 것이죠.

 

내장!! = Embedded!!

 

여기서 장치는 예를 들면 스마트폰, 내비게이션, 냉장고, 전기밥솥, 청소기, 자동차 등이 있겠습니다.

 

전기밥솥을 예로 밥을 하고 싶다 하면 특정 버튼을 눌러 밥솥에게 명령을 줍니다.

 

그러면 밥솥의 임베디드 시스템이 미리 프로그래밍 되어있는 절차를 따라서 버튼의 입력을 받고 취사를 시작합니다.

 

이렇게 특정 기능을 수행하기 위해 임베디드 시스템은 존재합니다.

 

특정 기능을 수행하기 위해 그냥 PC를 탑재하면 되겠지만

 

공간적인, 비용적인 문제가 있기 때문에 적절한 MCU칩과 기타 회로, 코드를 활용하여 임베디드 시스템을 탑재합니다

 

그리고 임베디드 시스템은 임베디드 하드웨어와 소프트웨어로 구성되어있죠.

 

임베디드 하드웨어는 시스템이 특정 기능을 수행하기 위해 스위치가 구성되어 있다던지 온도센서가 있다던지

 

기능을 위해 구성이 달라집니다.

 

임베디드 소프트웨어도 마찬가지로 특정 기능을 수행하기위해 프로그래밍됩니다.

 

임베디드 시스템의 특징은 위와 같이 특정한 기능을 수행한다 말고

 

보통 실시간으로 처리되어야 하고 대량으로 만들어진다는 특징이 있습니다.

 

그리고 일반 학부생 때는 AVR, 아두이노와 같은 도구를 통해 임베디드 시스템을 경험할 수 있습니다.

 

좀 더 수준 높은 경험을 해보고 싶다라고 하면 ARM을 공부하면 되겠습니다.

'전자공학 > 임베디드' 카테고리의 다른 글

인터럽트 우선순위 (폴링, 데이지체인)  (0) 2019.10.18
폴링과 인터럽트 비교  (0) 2019.10.17
교착상태(deadlock)  (0) 2019.10.14
2019년 제6회 임베디드 기사 필기 후기  (0) 2019.09.22
RTC란??  (0) 2019.04.21

+ Recent posts