Проектирование с использованием IDE (Отчет о выполнении научно-исследовательской работы), страница 3

# traceprinter  -f ./log.txt |grep 974897 >logg.txt

Содержимое итогового файла logg.txt:

                       pid:974897

t:0xbe7f9e24 CPU:00 THREAD  :THCREATE      pid:974897 tid:1

t:0xbe7fa33a CPU:00 THREAD  :THRECEIVE     pid:974897 tid:1

                      path:/proc/974897/as

                      …

                      path:/proc/974897/as

t:0xc015af43 CPU:00 KER_CALL:CONNECT_ATTACH/39 nd:0x00000000 pid:974897

t:0xc01a50a5 CPU:00 COMM    :SND_MESSAGE   rcvid:0x00000003 pid:974897

t:0xc01aee56 CPU:00 THREAD  :THREADY       pid:974897 tid:1

t:0xc01af51b CPU:00 THREAD  :THRUNNING     pid:974897 tid:1

t:0xc01b191a CPU:00 COMM    :REC_MESSAGE   rcvid:0x00000003 pid:974897

t:0xc01ffdb3 CPU:00 THREAD  :THREPLY       pid:974897 tid:1

t:0xc0280d3e CPU:00 COMM    :REPLY_MESSAGE tid:1 pid:974897

t:0xc028147a CPU:00 THREAD  :THREADY       pid:974897 tid:1

t:0xc02f3c3a CPU:00 THREAD  :THRUNNING     pid:974897 tid:1

t:0xc033d978 CPU:00 THREAD  :THRECEIVE     pid:974897 tid:1

t:0xc0d23d45 CPU:00 COMM    :SND_PULSE_DIS scoid:0x40000003 pid:974897

t:0xc0d254ff CPU:00 THREAD  :THREADY       pid:974897 tid:1

t:0xc124849c CPU:00 THREAD  :THRUNNING     pid:974897 tid:1

t:0xc12505a6 CPU:00 COMM    :REC_PULSE     scoid:0x40000003 pid:974897

t:0xc127d665 CPU:00 THREAD  :THREPLY       pid:974897 tid:1

t:0xc131846d CPU:00 COMM    :REPLY_MESSAGE tid:1 pid:974897

t:0xc1319899 CPU:00 THREAD  :THREADY       pid:974897 tid:1

t:0xc15f1696 CPU:00 THREAD  :THRUNNING     pid:974897 tid:1

t:0xc16137f3 CPU:00 THREAD  :THRECEIVE     pid:974897 tid:1

                      path:/proc/974897/as

                      …

                      path:/proc/974897/as

t:0xcf974897 CPU:00 THREAD  :THRECEIVE     pid:1 tid:9

Информацию, представленную в данном файле нагляднее смотреть в среде, хотя среда получает эту информацию именно с помощью вышеуказанного механизма.


3.  Профилирование  для локального и сетевого обмена сообщениями

         на уровне микроядра

Обмен сообщениями между независимыми процессами с использованием регистрации имени (локальный вариант):

client:

#include <stdio.h>

#include <errno.h>

#include <stdlib.h>

#include <sys/dispatch.h>

int main (void)

{

      char send_buf [25];

      char  msg_reply [25];

      int fd;

      fd = name_open("Mess2",0);  

strcpy(send_buf, "ask");

while{

MsgSend(fd, &send_buf, sizeof(send_buf), &msg_reply, sizeof(msg_reply));

            printf("CLIENT get: %s\n",msg_reply);   

            sleep(1);

      }

      name_close(fd);  

      printf("\nEnd of client\n" );

      return EXIT_SUCCESS;   

}

Server

#include <sys/iofunc.h>

#include <sys/dispatch.h>

#include <stdlib.h>

#include <stdio.h>

#include <malloc.h>

int main (void)

{

    name_attach_t *attach;

      int i, j ,k;

      float M;

      char receive_buf[25], reply_buf[25];

      int   rcvid, chid;

      strcpy(reply_buf, "Answer");

      attach = name_attach(NULL, "Mess2",0);

      while(1){

      rcvid=MsgReceive(attach->chid, &receive_buf, sizeof(receive_buf), NULL);

      printf("SERVER get: \"%s\"\n", receive_buf);  

      MsgReply(rcvid, 0, &reply_buf, sizeof(reply_buf));