- 博客(0)
- 资源 (36)
- 收藏
- 关注
hpp文件转化器
hpp在C++中的含义 hpp,其实质就是将。cpp的实现代码混入。h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,这是把hpp文件转化h和cpp的工具,linux平台
2013-03-10
svn_Repositor_2012_04_06
svn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarsvn_Repositor_2012_04_06.rarvvv
2012-04-06
Windows环境下32位汇编语言
可好了 汇编代码 太好了 可好了 汇编代码 太好了 可好了 汇编代码 太好了 可好了 汇编代码 太好了 可好了 汇编代码 太好了 可好了 汇编代码 太好了 可好了 汇编代码 太好了 可好了 汇编代码 太好了 可好了 汇编代码 太好了 可好了 汇编代码 太好了 可好了 汇编代码 太好了
2011-09-07
网络编程自己练习网络编程自己练习
网络编程自己练习网络编程自己练习网络编程自己练习网络编程自己练习网络编程自己练习网络编程自己练习网络编程自己练习网络编程自己练习网络编程自己练习
2011-08-03
生产者与消费者 进程调度模拟(c++)
这个是很经典的问题
实验题目: 生产者与消费者(综合性实验)
实验环境: C语言编译器
实验内容:
① 由用户指定要产生的进程及其类别,存入进入就绪队列。
② 调度程序从就绪队列中提取一个就绪进程运行。如果申请的资源被阻塞则进入相应的等待队列,调度程序调度就绪队列中的下一个进程。进程运行结束时,会检查对应的等待队列,激活队列中的进程进入就绪队列。运行结束的进程进入over链表。重复这一过程直至就绪队列为空。
③ 程序询问是否要继续?如果要转直①开始执行,否则退出程序。
实验目的:
通过实验模拟生产者与消费者之间的关系,了解并掌握他们之间的关系及其原理。由此增加对进程同步的问题的了解。
实验要求:
每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程类型标号、进程系统号、进程状态、进程产品(字符)、进程链指针等等。
系统开辟了一个缓冲区,大小由buffersize指定。
程序中有三个链队列,一个链表。一个就绪队列(ready),两个等待队列:生产者等待队列(producer);消费者队列(consumer)。一个链表(over),用于收集已经运行结束的进程
本程序通过函数模拟信号量的操作。
参考书目:
1)徐甲同等编,计算机操作系统教程,西安电子科技大学出版社
2)Andrew S. Tanenbaum著,陈向群,马红兵译. 现代操作系统(第2版). 机械工业出版社
3)Abranham Silberschatz, Peter Baer Galvin, Greg Gagne著. 郑扣根译. 操作系统概念(第2版). 高等教育出版社
4)张尧学编著. 计算机操作系统教程(第2版)习题解答与实验指导. 清华大学出版社
实验报告要求:
(1) 每位同学交一份电子版本的实验报告,上传到202.204.125.21服务器中。
(2) 文件名格式为班级、学号加上个人姓名,例如:
电子04-1-040824101**.doc
表示电子04-1班学号为040824101号的**同学的实验报告。
(3) 实验报告内容的开始处要列出实验的目的,实验环境、实验内容等的说明,报告中要附上程序代码,并对实验过程进行说明。
基本数据结构:
PCB* readyhead=NULL, * readytail=NULL; // 就绪队列
PCB* consumerhead=NULL, * consumertail=NULL; // 消费者队列
PCB* producerhead=NULL, * producertail=NULL; // 生产者队列
over=(PCB*)malloc(sizeof(PCB)); // over链表
int productnum=0; //产品数量
int full=0, empty=buffersize; // semaphore
char buffer[buffersize]; // 缓冲区
int bufferpoint=0; // 缓冲区指针
struct pcb { /* 定义进程控制块PCB */
int flag; // flag=1 denote producer; flag=2 denote consumer;
int numlabel;
char product;
char state;
struct pcb * processlink;
……
};
processproc( )--- 给PCB分配内存。产生相应的的进程:输入1为生产者进程;输入2为消费者进程,并把这些进程放入就绪队列中。
waitempty( )--- 如果缓冲区满,该进程进入生产者等待队列;linkqueue(exe,&producertail); // 把就绪队列里的进程放入生产者队列的尾部
void signalempty()
bool waitfull()
void signalfull()
void producerrun()
void comsuerrun()
void main()
{ processproc();
element=hasElement(readyhead);
while(element){
exe=getq(readyhead,&readytail);
printf("进程%d申请运行,它是一个",exe->numlabel);
exe->flag==1? printf("生产者\n"):printf("消费者\n");
if(exe->flag==1)
producerrun();
else
comsuerrun();
element=hasElement(readyhead);
}
printf("就绪队列没有进程\n");
if(hasElement(consumerhead))
{ printf("消费者等待队列中有进程:\n");
display(consumerhead);
}
else {
printf("消费者等待队列中没有进程\n");
}
if(hasElement(producerhead))
{ printf("生产者等待队列中有进程:\n");
display(producerhead);
}
else {
printf("生产者等待队列中没有进程\n");
}
}
2011-06-12
微软官方windows程序设计
Microsoft Windows is a complex operating system. It offers so many features and does so much that it's impossible for any one person to fully understand the entire system. This complexity also makes it difficult for someone to decide where to start concentrating the learning effort. Well, I always like to start at the lowest level by gaining a solid understanding of the system's basic building blocks. Once you understand the basics, it's easy to incrementally add any higher-level aspects of the system to your knowledge. So this book focuses on Windows' basic building blocks and the fundamental concepts that you must know when architecting and implementing software targeting the Windows operating system. In short, this book teaches the reader about various Windows features and how to access them via the C and C++ programming languages.
2011-02-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人