资源描述:
《操作系统 课程设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统实验报告班级:学号:姓名:【实验内容】(1)要求:熟悉和理解Linux编程环境内容v编写一个C程序,使用Linux下的图形库,分窗口显示三个并发进程的运行。(2)要求:掌握添加设备驱动程序的方法内容:v采用模块方法,添加一个新的设备驱动程序。v要求添加字符设备的驱动。v编写一个应用程序,测试添加的驱动程序。(3)要求:理解和分析/proc文件内容v了解/proc文件的特点和使用方法。v监控系统状态,显示系统中若干部件的使用情况。v用图形界面显示系统监控状态。【实验过程】1.安装和学习LINUX下GTK的使用:$sudoapt-getinstallbuild-essential$sudo
2、apt-getinstallgnome-core-devel$sudoapt-getinstallpkg-config$sudoapt-getinstalllibgtk2.0*(下载安装GTK)1.初步架构:每个GTK项目大同小异,使用相同的库函数(当然参数根据具体情况而定,而特殊的函数是为了实现特殊的功能)。首先要创建窗体window,设置完参数后连接到信号并设置窗口名称;然后创建组装盒,设置参数(横向纵向,位置等等),然后将组装盒放进window并显示;在组装盒内部,根据不同实验的具体要求创建标签或者进度条等项目,设置好参数(比如在组装盒内的排布问题)后放入组装盒并显示;最后说明,一个窗口
3、可以由多个组装盒组成,一个组装盒一般有多个标签,项目的整体实现就是由组装盒和标签“罗列”而成。1.撰写源程序:【实验一】:#include#include#includegintprogress_timeout(gpointerpbar){gdoublenew_val;chars[10];new_val=gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(pbar))+0.01;if(new_val>1.0)new_val=0.0;sprintf(s,"%.0f%%",new_val*
4、100);gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(pbar),new_val);gtk_progress_bar_set_text(GTK_PROGRESS_BAR(pbar),s);returnTRUE;}voiddestroy_progress(GtkWidget*widget){gtk_main_quit();}voidshow(intargc,char*argv[],char*title){GtkWidget*window;GtkWidget*vbox;GtkWidget*pbar;GtkWidget*pbar2;GtkWidget
5、*button;GtkWidget*label;inttimer;charid_char[50];gtk_init(&argc,&argv);window=gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_resizable(GTK_WINDOW(window),TRUE);gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(destroy_progress),
6、NULL);gtk_window_set_title(GTK_WINDOW(window),title);gtk_container_set_border_width(GTK_CONTAINER(window),0);vbox=gtk_vbox_new(FALSE,10);gtk_container_set_border_width(GTK_CONTAINER(vbox),10);gtk_container_add(GTK_CONTAINER(window),vbox);gtk_widget_show(vbox);sprintf(id_char,"鏈繘绋婭D:%d",getpid());la
7、bel=gtk_label_new(id_char);gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,0);gtk_widget_show(label);sprintf(id_char,"鐖惰繘绋婭D:%d",getppid());label=gtk_label_new(id_char);gtk_box_pack_start(GTK_BOX(v