A few days ago, I learned the notion of FSM in a major class. This means kind of expression tool to show system or any-state, when we want to explain the complicated situation or CS algorithm. This is a contents below in my textbook for easily understanding.


THE ONLY IN DISCRETE DYNAMICS,


1.The Notion of State

: the state of a system is its condition at a particular point in time.


we can define the state to be an encoding of everything about the past that has an effect on the system’s reaction to current or future inputs. The state is a summary of the past.


2.Then, What is a Finite-State Machines??..'제한된 상태들의 변화를 순차적으로 나타내는 장치'

:

A state machine is a model of a system with discrete dynamics that at each reaction

maps valuations of the inputs to valuations of the outputs, where the map may depend on

its current state.

Therefore, A finite-state machine (FSM) is a state machine where the set States of possible states is finite.

 

States = {State1; State2; State3}


3.Transitions


A transition is represented as a curved arrow, as shown in Figure 3.3.



The guard determines whether the transition may be taken on a reaction. The action specifies what outputs are produced on each reaction. In other words, the guard is condition for progressing next step(state) and the action means the an assignment of values (or absent) to the output ports.



EXAMPLE>


The transition is a symbol of arrow to move to next state, and the 'enabled' means can be a next state, when the conditions (such as P1,P2) is satisfied. (present(P) means there is a event at that time.) And also, the present has the meaning of true, the absent is false.

**Pure signal is input which has both a absent and present (event) such as UP,DOWN.


above example, The transition from state 0 to 1 has a guard written as up^:down. This is a predicate that evaluates to true when up is present and down is absent. 

------------------------------------------------------

UP : the event like a "come in 1 vehicle" (present),  DOWN : the event like a "come out 1 vehicle" (present)

if the absent occur, it means there isn't event.


These are standard logical operators where present is taken as a synonym for true and absent as a synonym for false. The symbol : represents logical negation. The operator ^ is logical conjunction (logical AND), and _ is logical disjunction (logical OR).





On a transition, the action (which is the portion after the slash) specifies the resulting valuation on the output ports when a transition is taken. If q1 and q2 are pure outputs and q3 has type N, then the following are examples of valid actions:

 


Any output port that is not mentioned in a transition that is taken is implicitly absent. (1Line)

When assigning a value to an output port, we use the notation name :=value to distinguish the assignment from a predicate, which would be written name = value. As in Figure 3.4, if there is only one output, then the assignment need not mention the port name.


::A default transition that need not be shown explicitly because it returns to the same state and produces no output.


The reaction is not shown explicitly in the diagram. Sometimes it is useful to emphasize such reactions, in which case they can be shown explicitly. A convenient way to do this is using a default transition, shown in Figure 3.6. In that figure, the default transition is denoted with dashed lines and is labeled with “true / ”.












'Nobody tells you about.. > RTOS' 카테고리의 다른 글

[Overview] OSEK  (0) 2013.06.04

sooner rather than later

단어장 저장

 
차라리 일찌감치

We urged them to sort out the problem sooner rather than later.예문 발음듣기

우리는 그들에게 차라리 일찌감치 그 문제를 해결하라고 촉구했다.


  • [일반]hope and pray that that day is reached sooner rather than later.예문 발음듣기 (출처:Hansard)

    [이용자 참여 번역문] 나는 차라리 일찌감치 그날이 되기를 희망하고 기도한다 (번역:gorainge***)

  • [일반]Health care reform may be on the way sooner rather than later.예문 발음듣기 (출처:YBM)

    건강보험개혁은 더 늦기 전에 시작해야 합니다.

  • [일반]Democrats all correspond that there should be a redeployment starting sooner rather than later.예문 발음듣기(출처:YBM)

    민주당은 더 늦기 전에 조속히 미군을 철수시켜야 한다는데 의견의 일치를 보고 있습니다.

  • [일반]We urged them to sort out the problem sooner rather than later.예문 발음듣기 (출처:옥스포드)

    우리는 그들에게 차라리 일찌감치 그 문제를 해결하라고 촉구했다.

  • [일반]Hopefully her work will lead to hard results and freedom for the Burmese people sooner rather than later.예문 발음듣기 (출처:타임즈코어)

    조만간 그녀의 활동이 확실한 결과와 버마 사람들의 자유로 이어지기를 바란다.

마르코프체인(Markov Chain)   AI / Tip  2010/02/02 01:58

원문출처 :  http://blog.naver.com/ojs83/120100904784   ::  http://happyengine.tistory.com/


마르코프체인(Markov Chain)은 마르코프성질(Markov Property)을 지닌 이산 확률과정(discrete-time stochastic process)을 의미한다.

 

확률과정이란 무엇인가?

확률과정(stochastic process or random process)이란 어떤 확률분포에 의해 벌어지는 일련의 연속현상들을 수학적으로 모델링하는데 사용되는 개념이다.


가장 간단한 확률과정을 예로 들자면 베르누이과정이 있겠다. 베르누이과정(Bernoulli Process)은 독립적으로 수행되며 오로지 두 결과값만을 갖는 사건이 연속적으로 발생할때, 그 결과값의 열을 모델링하는데 사용된다. 베르누이실험(Bernoulli trial)이라는 것이 "결과가 랜덤하게 둘 중 하나만 나오는 실험"이고, 베르누이 랜덤변수(Bernoulli random variable)이라는것이 베르누이실험의 결과 중 하나는 1로 하나는 0으로 매핑시켜주는 함수니까, 베르누이과정을 좀 더 수학스럽게 얘기하자면, "베르누이 랜덤변수 값의 열" 이라고 할 수 있겠다.

그럼 베르누이과정으로는 무엇을 모델링할 수 있을까? 동전던지기의 결과열이 그 대표적인 예가 되겠다. "앞뒤뒤앞앞뒤앞뒤.." 와 같은 열. 이런 열은 어떤 모델에 의해 생성이 되었냐는 물음에, 바로 "베르누이과정"에 의해 생성되었다고 하면 된다는 얘기다. 이 베르누이 과정에 의해 생성되는 열은 "앞뒤뒤앞앞뒤앞뒤..."가 될 수도 있고, "뒤뒤앞뒤앞뒤앞..."이 될 수도 있겠다.


이보다 아주 조금 복잡한 확률과정을 들자면, 포아송과정(Poisson Process)가 있겠다. 이 과정은 시간축 위에서 독립적으로 랜덤하게 발생하는 사건들의 열을 의미한다. 예를 들자면, 어떤 서버에 있는 홈페이지가 방문되는 사건들이나, 내 전화기에 걸려오는 전화들 같은 것들이 되겠다.또 조금만 생각을 달리하면, 책한권에 있는 오타들 도 될 수 있다. 위에서 예를 든 동전던지기의 경우, 만일 "앞"이 나오는 사건들의 열을 생각한다면, 이것도 포아송과정이다.

왜 이것들이 포아송과정인가? 모두 얘기하자면 매우 수학적이 될것같다. 간단히만 얘기하자면, 몇가지 사소한 조건만 만족할 경우, 이 포아송과정에 의해 발생하는 사건들에는 포아송분포를 따르는 특징이 있기 때문이다. 무엇이 포아송 분포를 따르냐 하면, 바로 특정 시간동안에 발생하는 사건의 수이다.

예를 들어, 10분동안 홈페이지가 방문될 회수가 어떤 확률분포를 따를지 곰곰히 생각해보자. 평균잡아 10분에 5번정도 방문되더라 하는 기존의 계산이 있었다면, 아마도 5번 방문될 확률이 제일 클 것이다. 4번이나 6번은 그보다 조금 작고, 3번이나 7번은 좀 더 작고, 그럴것이다. 이 분포가 포아송분포를 따름이 증명이 되어 있다는 얘기다

베르누이과정이 이산 확률과정인데 반해 포아송과정은 연속 확률과정이다. 베르누이과정에서는 시간의 개념이 1회,2회,3회와 같이 이산적이지만, 포아송과정에서는 0초부터 무한대까지 연속공간의 특정위치이기 때문이다.

 

그럼 이제 마르코프체인을 알아보도록 하자.

마르코프체인도 어쨌건 이산확률과정이므로 뭔가 1회,2회,3회에 발생하는 사건의 열을 의미하겠다. 중요한건 마르코프성질을 지닌다는 것이다. 그럼 마르코프성질이란 무엇인가? 마르코프성질이란 n+1회의 상태(사건의 결과)가 오로지 n회에서의 상태(사건의 결과)에만 영향을 받는것을 의미한다. 결과가 랜덤하게 나오는 동전던지기는 분명 마르코프성질을 따르지 않는다. 지금 던졌을때 나온 결과가 다음 던졌을때의 결과에 전혀 영향을 주지 않기 때문이다.

그러나 세상에는 그렇게 해석될 수 없는 "사건의 열"이 더 많다. 예를 들어, 1일날씨, 2일날씨, 3일날씨 라던가, 아니면 지금 이 글에서 첫번째단어,두번째단어, 세번째단어 등을 생각해보자. 2일의 날씨는 1일의 날씨와 완전히 무관하게 나타나는 현상일까? 아니면 (말이 되는 문장을 쓰지는 않는다고 가정할 때) 다음에 쓸 단어는 바로 이전 단어와 전혀 독립적으로 나타날까? 그렇지 않다. 그렇다고 위에서 든 두가지 예가 마르코프성질을 지니고 있다고 단정하는 것은 아니다. 3일의 날씨가 2일의 날씨와만 상관있다고 할 수 있지도 않고, 다음에 쓸 단어가, 몇단어 이전의 단어와 상관이 있을 수도 있는 것이기 때문이다. 그러나 이러한 현상들을 단순하게 모델링할때는 마르코프체인이라고 가정한다. 이러한 가정이 실제로 모델을 매우 단순하게 만들며, 때로는 이렇게 단순하게 만들어진 모델이 엄청난 위력을 발휘하기도 한다.


마르코프체인을 약간 다르게 해석하자면, n개의 상태가 있고, 그 상태들 중 임의의 상태로 시간에 따라 변해가는 과정을 생각할 수 있다. 예를 들어 상태가 {R, G, B} 이렇게 세개가 있다면, 첫번째는 G, 두번째는 R, 세번째는 G, 네번째는 G, 다섯번째는 B, 여섯번째는 B, 일곱번째는 R ... 이렇게 말이다.

물론 마르코프 성질을 지니니까, 두번째에 어떤 상태를 가질지는 첫번째 상태가 무엇이었냐에 따라 결정되고, 세번째는 두번째 상태에, 네번째는 세번째 상태에 의해 결정된다. 여기서 주의할것이 있다. 위 예를 보면, 첫번째 상태는 G였고 두번째상태는 R인 경우도 있고, 세번째 상태가 G일때 네번째 상태가 G인 경우도 있다. 즉, 마르코프체인은 "상태가 G일때 무조건 X상태로 간다" 이렇게 만들어지는게 아니라, "상태가 G일때 다음 상태가 R일 확률은 얼마, G일 확률은 얼마, B일 확률은 얼마" 이런식으로 정의된다.

따라서, 마르코프체인에서는 "상태전이확률"(state transition probability) 행렬이 핵심이 되고, 이 확률들을 사용하면 아래와 같은 다이어그램이 그려진다. 




이 게 머냐하면, 아주 간단한 영어문장뼈대의 생성과정을 Markov Chain으로 묘사한 그림이다. <start>는 시작상태, ART는 관사상태, V는 동사상태, N은 명사상태, P는 전치사상태이다. 즉 <start>상태에서 관사상태와 명사상태로 갈 확률이 각각 71%, 29%이고, 명사상태에서 다시명사, 동사, 전치사상태로 갈 확률은 각각 13%, 44%, 46% 라는거다. 이 모형에 따르면, 아주 여러가지 형태의 문장들이 생성될 수 있을 것이다. 이 모형은 음성인식과 자연언어처리의 품사태깅(각 형태소에 적절한 품사를 자동으로 부착하는 작업)의 근간으로 아주 오랫동안 사용되어져왔으며, 지금도 사용되고 있다. 시간이 되면 Hidden Markov Model(은닉 마르코프 모형)이라고 하는 잘 알려진 모형에 대해서도 한번 써보려 한다.


여하간, 중요한 수식 등 자세한건 좀 더 인터넷을 찾아보면 공부할 수 있을 것이고...


그렇다면, 마르코프체인과 구글의 페이지랭크는 어떤 관계가 있을까?


이 제 페이지랭크와 이 마코프체인의 관계를 생각해보자. 그러기 위해 지구상에 존재하는 모든 웹페이지들과 그 페이지간에 걸려있는 링크들을 위의 다이어그램에 매핑시켜보자. 그리고 임의의 한 페이지에서 링크를 따라 아무데로나 페이지를 따라가는 Random Surfer(랜덤서퍼)를 생각해보자. 링크에 위에서처럼 확률값이 붙어야 하는데, 확률값은 대충 준다. 어떻게 주냐면, 어떤 페이지에 링크가 2개면 각 링크를 따라 다른페이지로 갈 확률은 각각 50%, 50%라고 하고, 10개면 10%, 10%..., 10% 라고 그냥 하자. 


대충 저 위의 다이어그램하고 매핑이 되는지?


페이지랭크는 웹을 이런 단순한 구조로 추상화하는데서 시작됐다. 웹을 각 페이지가 노드이고 링크가 간선이며, 간선위의 확률값은 그 간선이 출발한 노드(페이지)에 위치한 링크수분의 1로 단정짓고, 일단 마르코프 체인을 그린거다. 그리고 어떤 문제를 푸냐하면, 이런 마르코프체인 위에서 Random Surfer가 마구 이동을 해대다가 누군가 Stop! 이라 외쳤을때, 각 노드(페이지)에 위치할 확률을 구한것이다. 그 값이 제일 높은 노드가 바로 인터넷상에서 가장 권위있는 페이지라는 것이다!


이렇게 한번 예를 들어보자. 나랑 내 친구 철수랑 그의 친구 영희랑 그의 오빠 영철이랑 네명이 각각 홈페이지를 갖고 있고 거기에 네이버 홈페이지, 이렇게 딱 다섯개의 웹페이지가 있는 공간을 생각해보자. 상식적으로 이 다섯개의 웹페이지에 링크들이 어떻게 서로가 서로를 가리키고 있을지 가정해보고, Random Surfer를 그 마르코프체인위에 올려놓고 돌아다니라고 해보자. 그리고 몇분후에 Stop했을때, 그 Random Surfer가 어디있을 가능성이 제일 클것같은가?


거의 예외없이 네이버홈페이지라 생각할 것이다. 왜냐하면 머리속에 그린 그림은, 네이버가 제일 화살표를 많이 받고 있었기 때문일 것이다. 대충 그렇다. 근데 꼭 많이 받고 있는다고 거기에 머물 확률이 제일 큰건 아니다. 여기서부터 이제 임의의 순간에 각 페이지에 머물러 있을 확률을 구하기 위한 몇가지 수학공식들이 나오게 되는 것이다. 






좀 더 수식적으로 깊이 이해하려면, 구글의 창업자 중 한명인 세르게이 브린이 직접 쓴 논문 (번역판) 이나, 기타 여러가지 강의자료 등을 직접 구해 읽어보는게 제일 좋을것이다. 


세 르게이 브린의 논문에는 Markov Chain이라는 용어가 언급도 되어 있지 않은데, 많은 사람들은 브린이 논문을 쓸 당시 Markov Chain에 대해서는 모르고 있었다는 얘기가 있다. 바꿔 말하면, Markov Chain에 대해 열심히 연구하던 사람들은 따로 있고, 세르게이는 그와 똑같은 생각을 해서, 시스템을 만들고 막대한 부를 거머쥐었다고나 할까~





  • 인지 아닌지~  , 이든 아니든간에,  (추측의 느낌)


    [학문]Whether or not this is literally happening though is questionable.예문 발음듣기 (출처:Example Essays)

    [이용자 참여 번역문] 그 일이 정말로 일어났는지 아닌지는 의심스럽다. (번역:marina_p***)

  • [학문]Time Travel theorists have argued for years whether or not time travel is possible.예문 발음듣기(출처:Example Essays)

    [이용자 참여 번역문] 시간 여행 이론가들은 시간 여행이 가능한지 아닌지에 대해 몇 년 동안 논쟁해왔다. (번역:vivian***)

  • [예술/연예]Exactly whether or not that is good enough depends on who you are.예문 발음듣기 (출처:Rotten Tomatoes)

    [이용자 참여 번역문] 정확하게 그것이 충분히 훌륭한지 아닌지는 당신이 누구인지에 달려있다. (번역:nsh9***)

  • [학문]The question is whether or not they are using performance enhancing drugs.예문 발음듣기 (출처:Example Essays)

    [이용자 참여 번역문] 문제는 그들이 경기력 향상 약물을 사용했는지 아닌지이다. (번역:jey***)

  • [일반]would like to ask whether or not that is your experience.예문 발음듣기 (출처:Hansard)

    [이용자 참여 번역문] 난 그것이 너희 경험인지 아닌지 묻고 싶다. (번역:nsh9***)

  • [일반]believe it is worth considering whether or not that is still valid.예문 발음듣기 (출처:Hansard)

    [이용자 참여 번역문] 나는 그것이 여전히 타당한것인지 고려할 가치가 있다고 믿는다. (번역:nsh9***)

  • [일반]Whether or not to move overseas was a cross the Rubicon for the family.예문 발음듣기 (출처:YBM)

    해외로 이주할 것인가 말 것인가가 그 가족에게는 매우 중대한 결정이었다.

  • [일반]One can argue whether or not that is right or wrong.예문 발음듣기 (출처:Hansard)

    [이용자 참여 번역문] 사람은 그것이 올바른지 또는 잘못된 것인지 주장 할 수 있다. (번역:nsh9***)

  • [일반]Whether or not he comes(=Whether he comes or not), the result will be the same.예문 발음듣기 (출처:두산 동아)

    그가 오든 안 오든 결과는 같을 것이다.

  • [일반]It is arguable whether or not viruses are living organisms.예문 발음듣기 (출처:YBM)

    바이러스가 생물이냐 아니냐 하는 것은 논쟁의 여지가 있다.

'English is ..' 카테고리의 다른 글

To 부정사의 의미상의 주어  (0) 2013.05.20
some expressions..  (0) 2013.05.17
by + Which 용법  (0) 2013.04.23
Which 관계대명사적 용법  (0) 2012.11.03
[관계대명사] that과 which/who의 사용법  (0) 2012.11.02


Ad-Hoc Network




Ad-Hoc 네트워크는 분산형 무선통신 네트워크를 의미하며 특정 기지국에 의존하지 않고 무선 이동단말로만 구성된 네트워크를 말한다. 

송수신을 담당하는 단말들은 다른 단말기의 신호를 중계하는 기지국 역할까지 수행하고, 다양한 단말을 경유하는 네트워크를 구성한다.

기존 유선망 기반 무선 네트워크인 기지국 중심의 네트워크는 기지국 고장 시 네트워크 전체가 마비될 수 있고 기지국의 자체 용량 때문에 허용할 수 있는 사용자의 범위가 한정되지만, Ad-Hoc 네트워크는 응용 분야 측면에서 재해에 강하며 사용자 규모별로 네트워크의 크기를 자유롭고 용이하게 변경이 가능케 한 구조이다.


다만, Ad-Hoc 네트워크에 주소문제, 보안문제 등이 기술 확산 및 보급에 걸림돌이 되고 있는 실정이다. 따라서 Ad-Hoc 네트워크가 널리 보급되기 위해서는 모든 Ad-Hoc 단말기에 유일한 주소가 부여될 수 있는 환경이 마련되어야 하며 이러한 해결책으로 인터넷 주소를 기존 IPv4 체제인 32비트에서 128비트인 IPv6로 확장하면 주소 문제는 해결될 것으로 보인다.


 

보안문제는 Ad-Hoc 네트워크의 가장 큰 취약점으로 지적되고 있으며, 이를 해결하여 안전한 네트워크를 사용할 수 있는 완벽한 프로토콜의 개발이 요구되고 있는 실정이다. Ad-Hoc 네트워크의 응용분야로서는 초기 군사 네트워크에서 출발하였으나 향후 WPAN 및 센서 네트워크 등의 유비쿼터스 컴퓨팅의 여러 분야에 활용될 것으로 전망되며 이러한 Ad-Hoc 네트워크 구조상에서 컴퓨터, 주변기기, 카메라, 헤드셋 등 다양한 전자기기간 상호 독립적인 통신이 가능한 네트워크의 구성이 가능하다.




'Any Notion > What is that?' 카테고리의 다른 글

[기호] 수학기호 특수기호 그리스기호 읽는법.  (0) 2014.10.06
연산속도 단위  (0) 2014.02.11
Daemon  (0) 2013.04.29
D-BUS  (0) 2013.04.29
Namespace in C++  (0) 2013.04.29

출처 :  지식인 오픈백과

http://kin.naver.com/open100/detail.nhn?d1id=1&dirId=1&docId=132289&qb=RGlzayBBbmQgRXhlY3V0aW9uIE1vbml0b3I=&enc=utf8&section=kin&rank=2&search_sort=0&spq=0&pid=RU3kLF5Y7uGssZZR/LZsssssstG-028613&sid=UX3bNnJvLC4AAEEU-JQ


DaemonDisk And Execution Monitor 를 줄인 말이라고 합니다. 그렇지만, 프로그래머들이 "악마"를 컴퓨터 세상 속에 창조해 놓고, 나중에 위와 같이 점잖은 의미를 부여했다는 설이 더 설득력이 있어 보입니다.

 

데몬은 사용자가 필요할 때 불러와서 사용하는 일반 응용프로그램과는 달리, 특정한 동작을 보여주지 않은 채 잠복해 있는 프로그램을 의미합니다. 프린터 스풀러가 좋은 예가 될 수 있습니다. 프린터 스풀러는 윈도우즈가 실행되는 동안 어딘가에 잠복해 있다가, 어떤 프로그램에서 인쇄를 해야 할 일이 생기면 실행되어서 인쇄와 관련된 작업을 수행하거나 지시합니다.

웹서버, FTP서버 등 많은 종류의 서버들은 "데몬"이 대표적으로 이용되는 분야라 할 수 있습니다. PC에 웹서버 프로그램을 설치하여 구동시키면 웹서버 데몬이 실행됩니다. 그렇지만, 달라진 것은 아무것도 없습니다. 다만, 그 데몬의 역할을 엿보는 모니터링 도구 같은 것을 이용하면 웹서버 데몬이 어떤 역할을 수행하고 있다는 것을 알 수 있습니다. 그렇지만, 예를 들어 외부에서 아무도 웹 서버에 접속하지 않는 동안은 웹서버 데몬은 그저 잠복해 있을 뿐입니다.

위에서 윈도우즈의 프린터 스풀러를 예로 들었는데, 데몬의 개념이 도입된 것은 유닉스 시스템이고, 데몬을 가장 널리 활용하는 운영체제도 유닉스라 할 수 있습니다.

유닉스에서 대표적인 데몬 툴로는 웹서버, FTP 서버 이런 것들을 제외하고는 CRON 툴이 있습니다. 특정 시간에 지정한 명령을 실행시켜주는 이 툴은 데몬의 형태를 갖는 대표적인 유닉스의 기능이라 할 수 있습니다. 윈도우즈로 치자면 "예약 작업(Scheduled Task)"과 유사합니다.

다시 한번 반복하자면, 데몬은 특정한 동작을 하고 있지 않은 채, 어떤 동작에 대한 요청을 받아들이기 위해 잠복하고 있는 프로그램입니다. 이것은 위에서 예로 든 것처럼 운영체제 수준에서 제공되는 것들도 있지만, 특정 응용프로그램 내에서 사용되는 경우도 있습니다.

그 개념은 같지만, 운영체제 수준의 데몬을 Daemon, 응용프로그램 수준의 데몬을 Demon으로 구분하는 경우도 있으니, 참고하시기 바랍니다. 응용프로그램 수준의 데몬은 그 응용프로그램을 개발한 사람의 의사에 따라 Agent처럼 다른 명칭으로 불리기도 하구요.

끝으로 한 가지 사족을 달까 합니다. 최근에는 가상 CD-ROM/DVD-ROM 드라이브를 에뮬레이트하는 유틸리티들 중 하나의 이름이 "데몬툴(Daemon-Tools)"이라, 이것 때문에 입에 오르내리는 용어가 되기도 했습니다.

'Any Notion > What is that?' 카테고리의 다른 글

연산속도 단위  (0) 2014.02.11
AD-HOC network  (0) 2013.04.29
D-BUS  (0) 2013.04.29
Namespace in C++  (0) 2013.04.29
모수란?  (0) 2013.04.27

INSTANCE 란?


①일반적으로 어떤 집합에 대해서, 그 집합의 개별적인 요소. 객체 지향 프로그래밍(OOP)에서, 어떤 등급에 속하는 각 객체를 인스턴스라고 한다. 예를 들면 ‘목록(list)’이라는 등급을 정의하고 그 다음에 ‘본인 목록(my list)’이라는 객체를 생성(기억 장치 할당)하면 그 등급의 인스턴스가 생성된다. 또한 변수가 포함되어 있는 어떤 논리식의 변수에 구체적인 값을 대입하여 식을 만들면 원래 식의 인스턴스가 만들어진다. 이런 의미에서 인스턴스를 실현치라고 한다. 
프로그램 작성 언어 에이다(Ada)에서 매개 변수를 사용해서 절차를 일반적으로 정의한 범용체(generic package)에 대해, 그것으로부터 도출한 구체적인 실체.


출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=69718936&qb=aW5zdGFuY2U=&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=RU3RdU5Y7tosstowSPZsssssssC-287841&sid=UX3To3JvLCkAABa1kn8



-----------------------------------------------------------------------

instance란 자바뿐만 아니라... 객체지향형의 모든 툴에서 동일하지 않나요?
class로만 설명을 해보면...class는 단지 동작에 대한 서술만이 있을 뿐입니다. 실제 사용을 할 수가 없다는 거죠.실제 사용을 위해 인스턴스를 생성하는 겁니다.

즉, 클래스를 메모리에 로딩해서 사용가능하게 만든 상태라고 설명하면 될까요?

그러니깐... 클래스 자체는 기계의 도면일 뿐이고 이 도면을 갖고 실제 기계가 완성된 상태가 인스턴스라고 설명하면 되겠내요. ^^;

-------------------------------------------------------------------------

class는 단지 변수와(상태값) 변수(상태값)에 값을 넣기위한 동작에 대한 서술만이 있을 뿐입니다. 실제 사용을 위해 인스턴스를 생성하는 겁니다.

즉, 클래스( 기술해 놓은 구조) 를 메모리에 로딩해서 사용가능하게 만든 상태 따라서... 클래스를 사용하기 위해서는 반드시 생성하는 작업을 해야 합니다.
그리고 코드로 설명하면
Class c1 = new NewClass() ; ---> 이런코드가 있다면

c1은 instance variables 이 됩니다.
즉 인스턴스를 가리키고 있는 variable이 되는 거죠.

그리고 instance of a class 라는 거는 위에 설명되어있는 것처럼
클래스의 실체를 메모리에 생성한겁니다.

즉,

Class c1 = new NewClass() ; 
Class c2 = new NewClass() ; 
Class c3 = new NewClass() ; 
Class c4 = new NewClass() ; 
Class c5 = new NewClass() ; 

이렇게 다섯개의 instance variables 가 있다면
c1 ~ c5의 variable은 NewClass 라는 클래스의 instance가 되죠.
---> instance of a class



----------------------------------------------------------

이해하기 쉽게 예를 들어보겠습니다.

 

클래스를 붕어빵을 만드는 기계라고 생각해보세요.

인스턴스는 붕어빵 기계로 만든 "붕어빵"입니다.

 

클래스가 개념적인 형태라면 인스턴스는 실체입니다.

 

예) SampleClass sc = new SampleClass();

 

위에서 SampleClass 는 클래스이고, sc는 인스턴스이고 여기서는 new는 클래스에서

인스턴스를 만드는 생성자 함수입니다.


출처 : 

http://www.freedesktop.org/wiki/Software/dbus


먼저, freedesktop.org는 X윈도우 시스템 및 이를 기반으로 하는 데스크톱과 관련된 정보를 처리,상호운용하는 그리고 공용기술을 규격화하고 해당요소들을 사용하는 오픈소스 소프트웨어 프로젝트들을 호스팅하는 사이트이다. 


*X윈도우시스템 : GUI환경 구현을 위한 Software, Network Protocol 이다.



D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a "single instance" application or daemon, and to launch applications and daemons on demand when their services are needed.


D-Bus란 메세지 버스시스템이다. 이는 어플리케이션끼리 대화를 하는 간단한 방법이다. 칩셋에서 내부적인 통신뿐만 아니라 D-Bus는 상호적인 Lifecycle(생활주기?)을 도와준다.또한, 간단하고 신뢰성있는 single instance단위의 어플리케이션과 데몬을 코딩할수있게 만들어주며, 관련서비스가 실행되어야 할때 데몬과 어플리케이션이 실행될수있도록 도와준다. (즉, 데몬을 실현하는 시스템으로 이해)


D-Bus supplies both a system daemon (for events such as "new hardware device added" or "printer queue changed") and a per-user-login-session daemon (for general IPC needs among user applications). Also, the message bus is built on top of a general one-to-one message passing framework, which can be used by any two apps to communicate directly (without going through the message bus daemon). Currently the communicating applications are on one computer, or through unencrypted TCP/IP suitable for use behind a firewall with shared NFS home directories. (Help wanted with better remote transports - the transport mechanism is well-abstracted and extensible.)


The D-Bus low-level API reference implementation and protocol have been heavily tested in the real world over several years, and are now "set in stone." Future changes will either be compatible or versioned appropriately.


The low-level libdbus reference implementation has no required dependencies; the bus daemon's only *required* dependency is an XML parser (expat). Higher-level bindings specific to particular frameworks (Qt, GLib, Java, C#, Python, etc.) add more dependencies, but can make more assumptions and are thus much simpler to use. The bindings evolve separately from the low-level libdbus, so some are more mature and ABI-stable than others; check the docs for the binding you plan to use.


There are also some reimplementations of the D-Bus protocol for languages such as C#, Java, and Ruby. These do not use the libdbus reference implementation.


It should be noted that the low-level implementation is not primarily designed for application authors to use. Rather, it is a basis for binding authors and a reference for reimplementations. If you are able to do so it is recommended that you use one of the higher level bindings or implementations. A list of these can be found on the bindings page.


The list of projects using D-Bus is growing and they provide a wealth of examples of using the various APIs to learn from.


D-Bus is very portable to any Linux or UNIX flavor, and a port to Windows is in progress.


If you have any trouble with D-Bus or suggestions for improvement, bug reports and comments are very welcome.


Get on D-Bus today!

'Any Notion > What is that?' 카테고리의 다른 글

연산속도 단위  (0) 2014.02.11
AD-HOC network  (0) 2013.04.29
Daemon  (0) 2013.04.29
Namespace in C++  (0) 2013.04.29
모수란?  (0) 2013.04.27

출처 : 지식인

http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=103092664&qb=64Sk7J6E7Iqk7Y6Y7J207Iqk&enc=utf8&section=kin&rank=3&search_sort=0&spq=1&pid=RU1uQF5Y7t8sscUGc80sssssssV-370126&sid=UX1CcXJvLDYAAHLTaog


예를들어 서울이라는 사람과 부산이라는 사람이 프로그램을 개발합니다.

 

역할분담을 하여 개발을 해서 합치려고 보니까 함수 이름이 같게 되어 함수 이름 등을 다 뜯어 고쳐야 하는 상황이 올 수 있습니다.

이런 현상이 발생하는 이유는 함수 이름에도 규칙이 있기 때문입니다. 함수는 최소한의 기능을 수행해야 하며, 함수의 이름은 직관적으로 알 수 있도록 지어야 합니다.

예를들어 학생의 주소를 반환하는 함수라면 getStudentAddress() 이런 이름등이 되겠죠

 

이 뿐만 아니라 혼자서 프로그램을 개발하다 보면 이름의 충돌등이 발생할 수 있습니다.

이를 막기 위해 네임스페이스를 사용합니다.

 

namespace 서울

{

   getStudentAddress();

}

 

namespace 부산

{

   getStudentAddress();

}

 

이렇게 된다면

 

두 함수의 이름이 같을지라도 얼마든지 구분하여 사용할 수 있습니다.

(이름이 같아도 함수의 역할이나 매개변수, 리턴값들이 다를 수 있습니다.)

 

네임 스페이스의 사용방법은 위의 경우처럼 선언을 하시면 되고

사용할때는

서울::getStudentAddress();  처럼 사용하시면 됩니다.

 

그리고 네임 스페이스를 별도로 정의하지 않아도 항상 존재하는 네임 스페이스가 있는데 이를 전역 네임 스페이스라고 합니다. 디폴트 네임 스페이스라고 볼 수 있는데 흔히 전역변수를 선언하는 영역, 그러니까 함수의 바깥쪽이 바로 이 영역입니다. 이 영역은 원래부터 존재하므로 별도의 이름은 없습니다.

 

 

다음은 네임 스페이스의 작성규칙입니다.

1. 네임 스페이스의 이름도 일종의 명칭이므로 다른 명칭과 중복되어서는 안된다.

2. 네임 스페이스는 반드시 전역 영역에 선언해야 한다.

3. 네임 스페이스끼리 중첩 가능하다. 즉, 네임 스페이스 안에 또 다른 네임 스페이스를 선언할 수 있다.

4. 네임 스페이스는 항상 개방되어 있다.그래서 같은 네임 스페이스를 여러 번 나누어 명칭을 선언할 수 있다. 꼭 한꺼번에 몰아서 네임 스페이스내의 모든 명칭을 일괄 선언해야 하는 것은 아니다.

5. 네임 스페이스가 이름을 가지지 않을 수 있다.

6. 단일 모듈 프로젝트에서는 별 상관이 없지만 다중 모듈 프로젝트에서는 함수의 본체를 어디에 작성할 것인가 주의해야 한다. 여러 개의 모듈로 나누어진 프로젝트를 개발할 때는 보통 헤더 파일과 구현 파일을 따로 작성한다. 네임 스페이스안에 함수를 정의할 때 헤더 파일에 원형만 선언하고 구현 파일에 함수의 본체를 작성한다

 

 

 

 

즉, 네임스페이스는 개발자들에게 편의를 제공하기 위한 용도이며, 개발된 프로그램간의 충돌을 방지하기 위한것이다. 예를들어, 개발회사에서 함수테이블의 제공은 소속된 프로그래머들간의 변수이름의 혼란을 막기위해서이다. 하지만 기 개발된 프로그램의 경우 모든 변수이름을 변경하기엔 시간과 자원적인 낭비이다. 이럴때 바로 네임스페이스를 사용하게 되면 대단히 편리할것이다.

'Any Notion > What is that?' 카테고리의 다른 글

연산속도 단위  (0) 2014.02.11
AD-HOC network  (0) 2013.04.29
Daemon  (0) 2013.04.29
D-BUS  (0) 2013.04.29
모수란?  (0) 2013.04.27



http://m.ktword.co.kr/index.php




【   정보통신기술용어해설   】

`과학기술분야의 단편지식들을 정리,체계화시키고 있는 개인연구실입니다`




위의 형태로 간편하게 원하는 개념을 검색하여 정보를 취득할수있는 사이트입니다.



+ Recent posts