본문 바로가기

분류 전체보기

네트워크 프로그래밍 8/9 1 . Thread란? : thread는 독립적이고 병행적인 실행흐름을 갖는 프로그램 실행단위이다.-프로세스 안에 존재하며 프로세스의 자원을 공유한다.-하나의 process안에 여러개의 thread -thread는 모체인 프로세스가 존재하는 동안 실행되며 각 thread는 독립적 실행흐름을 갖는다.-프로세스 내부의 thread는 메모리 영역(text,data)을 공유하며 stack은 별도의 stack pointer를 가진다.-주소공간 대부분을 공유함, 생성이 빠르고 오버헤드가 작아서 경량급 프로세스(light weight process)라고 불린다.-thread는 자신의 요구에 의해 종료되거나 프로세스가 종료될 때 같이 종료된다. Ptheard?(Posix thread) ​:운영체제마다 thread를 자.. 더보기
네트워크프로그래밍 6/7 헤더 데이터 데이터가있으면 헤더가 있는데 그 공간에 ACK와 SYN, SEQ가 존재한다. SEQ는 처음에 무슨값이 되든 상관없음. 시퀀스번호는 처음에 랜덤으로 지정해준다. 다른곳에서 같이 통신하면 혼선이 올 수 있기 때문에 SEQ 번호 (내꺼) ACK 번호 (받은거) 프로그램을 실행하기 위해서는 메모리로 들어가야 한다. 메모리가 좋을 수록 실행속도가 빨라진다. 프로세스 ID = PID 메모장을 두개 띄웠을 때도 프로세스의 번호는 다르다. 시그널 핸들러 의미 함수 이름 시그널을 받으면 '함수 이름' 함수가 실행된다. SIG_IGN 시그널을 받으면 무시한다. SIG_DFL 시그널을 받으면 시스템에서 기본적으로 설정한 동작을 한다. void (*signal(int signum, void (*handler)(i.. 더보기
네트워크 프로그래밍 4/5 코드마다 error의 의미가 다름 man 2 listen 은행이라고 생각하면 창구에서 받을 수 있는 인원이 3명이고 대기자공간이 5명이라면 창구에서 받을 수 있는 인원을 늘리는 것이 PC / LAN / OS에 따라 다르며 /* (처리하는 것) 대기자를 늘리는 것은 메모리에 따라 다르다. (대기자 = 대기큐) /* (기다리는 것) - 일반적으로 대기큐를 늘리는 것 보다 넘치는 인원을 거절하는게 나음 - - 대기큐는 거의 5로 설정 - listen(소켓번호, 대기큐); Server.c Connect.c socket socket bind connect listen close block ex : scanf ( (scanf는 키 입력전까지) 대기하는 것을 블록킹이라한다.) 대기하지않는 것을 넌블록킹이라고한다. a.. 더보기
네트워크 이론 2 & 네트워크 프로그래밍 랜카드의 고유번호만으로도 컴퓨터끼리의 통신이 가능하다 -문제는 바로 코앞의 거리에 있어야만 가능 Domain ┐ Name ├ DNS Service ┘ Server three way handshake (전송 제어 프로토콜) TCP는 UDP와 달리 연결지향이라고 배웠었다. 그렇다면 연결지향이란 무엇을 의미하는것일까 ? 우리는 바로 위에서 TCP/IP 에 의해서 데이타가 어떻게 전송되어지는지를 알아봤는데, 데이타가 전송되기전에, Browser 와 Server 간의 연결을 성립하는 과정이 데이타를 전송하는 과정전에 이루어지게 된다. 연결을 만드는 과정은 이를테면 우리가 전화할때 어떤내용을 말하기에 앞서서, "안녕하세요 ?" "누구누구씨 맞아요?" "아, 네 저 누구누구 맞습니다"라고 상대편을 먼저 확인하는 과정.. 더보기
Network 이론 1 네트워크의 개념 모뎀이나 랜, 케이블 또는 무선 매체 등의 통신 설비를 갖춘 컴퓨터를 이용하여 서로 연결시켜 주는 통신망을 의미 단 두대의 컴퓨터를 연결하든, 그 이상의 컴퓨터를 연결하는 것이든지 상관없이 필요에 의한 컴퓨터들의 연결을 말한다. 네트워크의 이점 데이터 동시 접근 : 다수의 사용자가 같은 데이터에 동시에 접근하는 경우가 종종 발생하는 것을 데이터 동시 접근이라 한다. 읽기전용 : 공유장치에 저장된 데이터를 읽기만 할 수있는 권한을 가진 것 읽기/기록 : 네트워크 서버로부터 공유된 파일을 읽고 수정할 수 있고, 사용자들의 공유된 파일의 읽기 / 기록 권한을 갖는다. 2. 주변장치 공유 : 연구실이나 사무실에서 단일 네트워크로 컴퓨터들을 연결하는 것 (값비싼 주변장치들을 공유함으로써 얻는 이점.. 더보기
ATmega2560 - TWI의 동작 F_CPU 클록 주파수 TWPS는 TWSR 레지스터에 설정된 프리스케일러 비트값 TWPS1~0이다. -TWI의 마스터 모드에서 전송속도를 결정하기위한 프리스케일러, 전송속도는 시스템 클록의 주파수와 이 프리스케일러 및 TWBR 레지스터의 설정값에 의하여 결정된다. - - 프리스케일러의 0 / 0 전송속도 1을 사용한다. - TWI의 동작 - TWI 통신에서는 동작이 끝날 때마다 인터럽트가 발생하며 다음동작을 지정한다. 모든 통신 동작은 인터럽트에 의하여 백그라운드로 수행된다. /**** EEPROM에서는 Data를 WORD ADDRESS로 받아들인다. ****/ /**** ACK는 EEPROM에서 발생 ****/ [검정] - 시간상 흐름 ~(while)~ 1. TWI 하드웨어가 START 조건을 전송하도.. 더보기
아트메가2560..... BCD는 Binary Coded Decimal의 약자로서 이진코드의 십진화를 의미. 새로받은 기판의 7 Segment를 사용할것이기 때문에 seven.c / .h 를 복사해서 Decode.c / .h 를 만들어준다. 데이터의 용량이 정해지지 않은 상태로 그때그때 출력하여 주는것을 스트리밍 방식이라고 한다. 데이터의 용량이 정확히 정해져있는 상태를 블럭방식이라고 한다. 장치와 AVR을 연결하는 선은 2개(2-wire)이지만 장치에 필요한 VCC연결과 GND때문에 4개의 선으로 연결하는 것 처럼 보인다. (TWO Wire Interfaie = TWI) 클럭을 만들어내는 장치를 마스크라고한다. master에서 만들어내는 클럭을 받는것을 slave라고한다. ┌ TWI - 데이터 전용선과 제어전용선이 있다. ├ .. 더보기
ATmega2560 풀업다운등.. AVR 과 USART / AVR 과 ADC / AVR과 EEPROM 는 BUS로 연결되어있다. EEPROM은 레지스터를 건드려야 접근이 가능하다. C로는 접근이 불가능하며 Read만 가능하고 어셈블리로 접근할 수 있다. AC -> 전류가 변함(교류) DC -> 직류 (DK128-EXT의 VCC는 직류임) VCC 로 연결되면 풀업저항이라 하며 GND로 연결되면 풀다운저항이라 한다. 스위치를 누르지 않을 때에는 칩에 항상 5V의 전압이 가해지는데 이 때 회로는 항상 5V전압을 가지고 있다. 그런데 스위치를 누르게 되면 회로의 전압은 0V가 되고 1이 입력된다. 더보기
ATmega2560 증/감 인터럽트와 EEPROM사용하기 우리가 안썼던 인터럽트를 사용할 것이다. INT 5번과 INT 4번을 사용하여 인터럽트를 줄거기 때문에 PE5(7번),PE4(6번)에 푸쉬버튼을 연결하면됨 INT5/4번을 INit해주고 이전값을 보존하기 위해서 EICRB = EICRB | 이렇게 or을 걸어준다. 처음에 EICRB 를 or걸어주지 않고 사용했는데 무한루프에 빠져서 인터럽트를 빠져나오지 못했당 ㅠㅠ 백터테이블을 보고 백터를 걸어주고 백터는 smart.c에서 선언하여 사용한다. 주석을 확인하구 이렇게 소스를 완성시켜 AVR을 컴파일시켜주면 푸쉬버튼을 눌렀을 때 char LCD에 001~060까지 증가 or 감소가 되어 찍힌다! 최솟값이 1이기 때문에 001에서 감소버튼을 한번 더 눌러도 001이 나왔다. EEPROM AVR의 왼쪽 굵은선(B.. 더보기
7 Segment / 인터럽트를 이용하여 숫자 증감하기 버튼 두개로 증감하기 / 4번스위치 증가 5번 감소 6번 시작 7번 멈춤 Plus상태로 동작 /3번 스위치 리셋 추가 PORTJ 2번 의 PCINT11을 추가하여 RESET버튼을 추가했다. Minus 상태로 동작 smart.c - while문안의 for반복문을 ++ 에서 --로 바꿈 더보기