본문 바로가기

WORK/Sotfware235

[자료모음] Critical Section 백번 말해 봐야 한장의 사진을 이길 수 없다는것을 알았습니다. Critical Section And Mutex https://www.rudyhuyn.com/(그림 출처) 상호배제를 재미있게 설명한 삽화 입니다. 화장실이라는 자원은 하나 입니다. 이곳에 둘이 들어갈수 없는거죠? 아 여성분들은 들어가기도 합니다만 남성들은 절대 둘이 들어가질 않습니다. 저 공간에 남자가 들어간다는건, 심대하게 중요한 큰 일을 보러 들어가는것이지요? 나의 전유물인 냄새와 함께, 심묘한 표정을 지을수 있습니다. 여성분들도 큰 일을 볼 때는 같이 안들어가지 않을까? 싶습니다만, 그건 물어보지 않는거로.. 화장실은 혼자 사용해야 합니다. 누군가 급하게 들어오고 싶지만.. 밖에 뮤텍스가 지키고 있죠. 그냥은 못들어 갑니다. 들어가려고.. 2019. 12. 14.
[memory] 메모리의 종류 램(RAM)전원이 끊어지면 기억되어있는 데이터들이 소멸되기 때문에 휘발성 메모리(Volatile Memory)라 표현합니다.데이터를 읽는 속도와 기록하는 속도가 같으며, 컴퓨터의 주기억장치, 응용 프로그램 로딩, 데이터 일시 저장등과 같은 곳에 사용됩니다. 롬(ROM)전원이 끊어져도 기록된 데이터들이 소멸되지 않는 비휘발성 메모리(Non-Volatile Memory)입니다.즉, ROM에 데이터를 (반영구적으로) 저장한 후 이를 지속적으로 사용하게 됩니다. 컴퓨터의 바이오스도 이에 속합니다. 일반적인 롬은 데이터를 한번 저장하면 지울 수 없이 계속 사용해야하지만, PROM(1번 다시 쓰기가능), EPROM(무한), EEPROM(무한)은 특수한 방법을 통해 데이터를 삭제한 후 데이터를 다시 기록할 수 있습니.. 2018. 9. 20.
[Linked List No1] Struct 분석 이와 같은 형태의 구조를 나타내는게 Linked list 이다. 여기서 기본적인 구조는 구조체를 가진다. 이런 구조체를 노드라고 이름을 붙인다. struct pnode{char data;struct pnode *next;}; typedef struct pnode NODE; char을 사용한것은 영문이나 숫자를 넣기 위함이다. struct pnode *next; 는 자기 참조 구조체이다. 자기 참조 구조체를 쓰는 이유는 ? 구조체 자체는 하나의 값을 가진다. 그러나 자기 참조 구조체를 쓰게 되면 다른 변수를 지정히자 않아도 가능해 진다. 링크드 리스트의 핵심이 되는 부분이다. 여기서 이 부분이 다음 구조체에게 화살표를 쏘는 것이다. 하나의 구조체(노드), 마지막 구조체(노드)는 마지막이라는것을 나타내기 위.. 2018. 9. 10.
[C] the c programming language 2nd edition solutions 자료 모음 the c programming language 2nd edition solutions PDF 파일을 올려 놓고 싶으나. 혹시나 문제가 되지 않을까? 싶어서 링크를 걸어 둡니다. 혹여 안되면 댓글 남겨 주세요 해당 싸이트에서 저작권 문제로 막힌거 같내요. the_c_programming_language_2.pdf 다운 받은 곳 : https://github.com/ccpalettes/the-c-programming-language-second-edition-solutions C 언어 공부도 하고, 영어 공부도 하고? 2018. 9. 6.
[프로그램] 프로그램 언어를 배우기 위한 자료 링크 대단한 링크를 찾은것은 아니다. 여러번의 클릭으로 얻은 링크이다. 공부의 자료는 넘치고도 넘친다. 프로그램 언어가 이렇게 많은지 링크에 들어가 알았다. 그것도 무료로 말이다. 단지 영어를 좀 해야 한다. https://github.com/EbookFoundation/free-programming-books/ 이제 열심히만 하면 되는건가? 2018. 9. 6.
[C] linked list [1] 선행 학습 linked list 하면 일단 Head가 나오고 Tail이 나온다. 갑자기 머리가 나오고 꼬리가 나와 버린다. 사전 지식이 없으면 이해가 아닌, 암기가 된다. 재미있게 접근하기 위해서 사전에 선행 학습은 무엇이 있을까? 라는 고민을 했다. 크게 3가지로 구성 된다고 본다. 1. 메모리 구조 2. 포인트 3. 구조체 로 구성이 될 수 있다. 변수 자체가 메모리를 의미 한다. 메모리는 기억이다. 기억을 저장 하는 부분이다. 그 변수들의 모임들이 구조체의 모임이다. 같이 움직이고 싶은 마음들이 있는 것이다. 구조체를 설명하면 성적을 많이 이야기 한다. 하나의 이름에 여러가지 과목이 하나로 뭉쳐 다니기 때문이다. 독자적으로 돌아 다니는것을 봐주기 싫은 거다. 여기서 구조체와 포인트 부분을 이해가 필요 하다. .. 2018. 9. 5.
[C언어] hex to string convert Hex 에서 우리가 흔히 보는 문자인 String으로 변환 하는 방법이다. 특정한 함수를 사용 하여 쉽게 변환 할 수 있다. 그런데 모든 제품(컴파일러)에 특정 함수를 쓸 수 있는것은 아니다. 그럼 변환을 어떻게 할까? 하나의 HEX 값을 보자. 0x12 가 있다. 이것을 문자로 출력 하려면 문자로 표시를 하려면 12 라고 써야 한다. 표시 하려는 문자를 그대로 표출하기 위해서 "1" 과 "2"를 분리 해야 한다. 숫자 1은 0X31 / 2는 0x32 가 된다. 여기서 착안하여 프로그램 짠다. char a = 0x31 ; char changeData[2]; 초기화는 생략 한다. memset ( changeData , 0 , 2 ) ; // 그래도 한번 해 본다. changeData[0] = ( a >> .. 2018. 8. 17.
[C언어] 변수 C 언어 생각정리... 변수란 무엇인가? 변수는 주소를 가지고 있다. 포인터도 주소를 가지고 있다. 일반적인 변수에도 변수가 있다. 왜? 주소를 가지고 있을까? 어딘가에 저장을 하고 싶은 마음이 있기 때문이다. char i = 0; char *ptr ; char msi[3] = { 1, 2, 3] ; 다 메모리에 저장 된다. 어느 위치에 있는지 확인 하고 그 주소를 이용해서 포인터를 사용 한다. 모든 아이들은 자신만의 주소가 있는 것이다. 그럼 i 의 주소는 어떻게 볼 수 있는가? & 연산자를 이용한다. 포인터의 주소는 어떻게 보는가? 포인터는 그 자체가 주소이다. 배열은의 주소는 어떻게 보는가? 배열명 자체가 주소 이다. 2018. 8. 9.
[컴포트] USB TO SERIAL virtual comport delete 이전에는 시리얼 통신을 할때에는 컴포트가 정해져 있었다. COM1, COM2 정도 였다. 그것도 H/W로 정해져 있었다. 그런데 어느순간 노트북이 대중화 되면서 부터, 컴포트는 usb to serial로 동작 되고 있다. 좋은 점은 여러개의 컴포트, 2개 이상도 사용이 가능해 졌다. 그러나 많이 사용하다 보니 , 가성 컴포트가 점점 많아지는것이다. 컴은 0xFF 즉 255개까지만 열리게 된다. 이전 컴포트 툴을 사용하면 컴포트 10을 넘어가지 않는 프로그램도 있다. 지금은 그런 프로그램을 발견하기 쉽지는 않다. 테스트 예제 정도나 되어야 할까? 싶다. 컴포트가 20을 넘어가기 시작하면 스크롤이 점점 길어진다. 컴이 열러 있는것만 찾아니 편하게 이용하지만, 그냥 귀찮다. 보기 좋지 않다. 1등만 하던 생활.. 2018. 4. 17.
728x90