子进程打印提高部分

#include <pthread.h>
#include <sys/types.h>
#include <sys/sem.h>
#include <stdio.h>
#include <sys/ipc.h>
#include <sys/shm.h>

int semID; //semID



/*P操作*/
void P(int semid,int index)
{
struct sembuf sem;
sem.sem_num = index;
sem.sem_op = -1;
sem.sem_flg = 0;
semop(semid,&sem,1);
return;
}

/*V操作*/
void V(int semid,int index)
{
struct sembuf sem;
sem.sem_num = index;
sem.sem_op = 1;
sem.sem_flg = 0;
semop(semid,&sem,1);
return;
}

int a=0;

/*线程1,负责计算*/
/*
void subp1()
{//负责将1加到100
int i =1;
for(;i<=100;i++)
{
P(semID,0);
printf("Thread 1 is adding!\n");
a += i;
V(semID,1);
}
return;
}

void subp2()
{
int i;
for( i=1;i<=100;i++){
//打印出内容
P(semID,1);
printf("Thread 2 is printing:");
printf("%d\n",a);
V(semID,0);
}
return 0;
}
*/

struct sharedItem
{
int sumNum;
};


int main()
{
key_t key =1;

/*创建信号灯:2个*/
semID = semget(key,2,IPC_CREAT | 0666);

//信号灯赋初值1


semctl(semID,0,SETVAL,1);
semctl(semID,1,SETVAL,0);

/*创建两个子进程*/
int pid1,pid2;

key_t sKey = 0x2233;

int shID;
shID = shmget(sKey,sizeof(struct sharedItem), IPC_CREAT|0666);

if((pid1 = fork()) == 0)
{
/*创建共享内存*/
struct sharedItem *sum = (struct sharedItem*)shmat(shID,NULL,0);
sum->sumNum = 0;
int i=1;

for(;i<=100;i++)
{
P(semID,0);
printf("Process 1 is adding now\n");
sum->sumNum += i;
V(semID,1);
}

shmdt(sum);

}else if((pid2 = fork())==0)
{
struct sharedItem *sum = (struct sharedItem*)shmat(shID,NULL,0);
int i =1;

for(;i<=100;i++)
{
P(semID,1);
printf("Process 2 is printing: %d\n",sum->sumNum); //打印
V(semID,0);
}

shmdt(sum);
}
//创建两个线程p1和P2
/*
pthread_t p1,p2;
int get1,get2;
get1 = pthread_create(&p1,NULL,(void*)subp1,NULL);
get2 = pthread_create(&p2,NULL,(void*)subp2,NULL);

//等待两个线程运行结束
pthread_join(p1,NULL);
pthread_join(p2,NULL);
*/

waitpid(pid1,NULL,0);
waitpid(pid2,NULL,0);
//删除信号灯
shmctl(shID,IPC_RMID,NULL);
int isDelete;
isDelete = semctl(semID,1,IPC_RMID,0);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
集成运放参数测试仪[2005年电子大赛一等奖] 摘要:本系统参照片上系统的设计架构、采用FPGA与SPCE061A相结合的方法,以SPCE06 1A单片机为进程控制和任务调度核心;FPGA做为外围扩展,内部自建系统总线,地址译 码采用全译码方式。FPGA内部建有DDS控制器,单片机通过系统总线向规定的存储单元中 送入正弦表;然后DDS控制器以设定的频率,自动循环扫描,生成高精度,高稳定的5Hz 基准测量信号。扫频信号通过对30MHz的FPGA系统时钟进行分频和外部锁相环(FPGA采用 FLEX10K10无内部锁相环)倍频,产生高频率稳定度、幅值稳定度的扫频信号。放大器参 数测量参照GB3442- 82标准,低频信号幅度的测量采取AD高速采样,然后进行数字处理的方法;高频信号的 幅度直接采用集成有效值转换芯片测得。A/D转换采用SPCE061A内部自带的10位AD。SPC E061A主要实现用户接口界面(键盘扫描、液晶显示、数据打印以及其他服务进程的调度 )、AD转换以及测量参数(Vio Iio Kcmr Avd BWG Tr)计算、与上位机通信等方面的功能。上位机主要实现向下位机发送测量指令、与下 位机交换测量数据、以及数据的存储、回放、统计。 关键词: 参数测量 运算放大器 DDS FPGA SPCE061A 数字信号处理 一、方案比较设计与论证 (一)测量电路模块 1、测试信号源部分   方案一:利用传统的模拟分立元件或单片压控函数发生器MAX038,可产生三角波、 方波、正弦波,通过调整外围元件可以改变输出频率、幅度,但采用模拟器件由于元件 分散性太大,即使用单片函数发生器,参数也与外部元件有关,外接电阻电容对参数影 响很大,因而产生的频率稳定度较差、精度低、抗干扰能力差、成本也较高。   方案二:采用锁相式频率合成方案。锁相式频率合成是将一个高稳定度和高精度的 标准频率经过运算,产生同样稳定度和精确度的大量离散频率的技术,他在一定程度上 满足了既要频率稳定精确,又要在大范围内变化的矛盾。但其波形幅度稳定度较差,在 低频内波形不理想。   方案三:采用DDS技术。DDS以Nyquist时域采样定理为基础,在时域内进行频率合成 ,其相位、幅度都可以实现程控,而且用FPGA来实现非常简单。   在这里我们只需要一个5Hz的单一稳定频率,要求其频率,幅度稳定。综合考虑,我 们采用方案三,实现了高精度,高稳定度的5Hz测试信号源。 2、主测试电路   方案一:将测试放大器参数的实现分成4个电路检测。该方案实现各个参数的测量比 较好,且有利于各个参数调试。但是对于要实现智能测试该方案较复杂,在电路中所用 的继电器太多,很容易引起电磁干扰,不利于系统的整体性能提高,且不能实现电路的 智能测试。   方案二:采用一级运放。该电路经过仔细的分析会发现它设计的非常的巧妙调试也 很方便,不会产生自激、饱和等情况。缺点就是对与精度较高的运算放大器该方案实现 不了。   方案三:采用试题中所给的电路。这是一个二级的电路,测试精度非常的高。但在 调试中我们发现它很容易出现自激,为了使整个电路保持稳定,我们采取了一系列的稳 定措施,如采用雕刻机雕刻线路,并实现大面积的接地,辅助运放加入补偿矫正网络等 。   综合上述,为了实现自动测量,保证测试有更高的精度,采用方案三。 3、信号放大电路   方案一:采用普通的运算放大器放大电路。运算放大器放大电路成熟可靠,选用不 同的运算放大器,能够对各种信号进行很好放大。但其放大值固定,不能动态调整,不 便于处理大范围变化信号。   方案二:采用程控可增益放大器。程控可增益放大器可用单片机方便的进行增益设 定,十分有利于处理大动态范围信号。   由于测量信号动态范围大,要有效的采样处理,就要求放大器增益可动态调整,由 此我们选用方案二,采用可编程增益放大器AD625和数字电位器AD737组成程控增益放大 器,实现对测量信号的有效放大。 4、滤波电路   方案一:采用二阶切比雪夫低通滤波器或二阶巴特沃斯低通滤波器。切比雪夫 滤波器的幅度响应在通带内是在两值之间波动,在通带内波动的次数取决于滤波器的阶 数。理想的在靠近截止频率的范围内比巴特沃斯有更接近矩形的频率响应。但这一点是 一在频带内允许波动为代价的。巴特沃斯低通滤波器幅频响应是单调下降的,其N阶低通 滤波器的前(2N-1)阶导数在频率为零处始终为零,故又称为最大平坦幅度滤波器。   方案二:采用数字滤波。数字滤波有极大的灵活性,可以在不增加任何硬件成本的 基础上对信号进行有效的滤波,而且可以实现模拟器件难以实现的高阶滤波。但要进行 高效率的滤波,对AD采样要求有较高的采样速率和时实性,对单片机要求有较高的数据 运算速度。   方案三:采用模拟滤波器加数字滤波
新闻网页贴吧知道MP3图片视频百科文库 帮助设置 首页 自然 文化 地理 历史 生活 社会 艺术 人物 经济 科学 体育 欧冠 核心用户 进程管理 百科名片 引是正在运行的程序实体,并且包括这个运行的程序中占据的所有系统资源,比如说CPU(寄存器),IO,内存,网络资源等。很多人在回答进程的概念的时候,往往只会说它是一个运行的实体,而会忽略掉进程所占据的资源。比如说,同样一个程序,同一时刻被两次运行了,那么他们就是两个独立的进程。linux下查看系统进程的命令是ps。 目录 进程的分类1.基本系统进程 2.常见系统进程解释 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) 进程管理进程的分类 1.基本系统进程 2.常见系统进程解释 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) 进程管理 展开 编辑本段进程的分类 1.基本系统进程   Csrss.exe:这是子系统服务器进程,负责控制Windows创建或删除线程以及16位的虚拟DOS环境。   System Idle Process:这个进程是作为单线程运行在每个处理器上,并在系统不处理其它线程的时候分派处理器的时间。   Smss.exe:这是一个会话管理子系统,负责启动用户会话。   Services.exe:系统服务的管理工具。   Lsass.exe:本地的安全授权服务。   Explorer.exe:资源管理器。   Spoolsv.exe:管理缓冲区中的打印和传真作业。   Svchost.exe:这个进程要着重说明一下,有不少朋友都有这种错觉:若是在“任务管理器”中看到多个Svchost.exe在运行,就觉得是有病毒了。其实并不一定,系统启动的时候,Svchost.exe将检查注册表中的位置来创建需要加载的服务列表,如果多个Svchost.exe同时运行,则表明当前有多组服务处于活动状态;多个DLL文件正在调用它。 2.常见系统进程解释 (1)   system process   进程文件: system process   进程名称: Windows内存处理系统进程   描述: Windows页面内存管理进程,拥有0级优先。   是否为系统进程: 是 (2)   alg.exe   进程文件: alg or alg.exe   进程名称: 应用层网关服务   描述: 这是一个应用层网关服务用于网络共享。   是否为系统进程: 是 (3)   csrss.exe   进程文件: csrss or csrss.exe   进程名称: Client/Server Runtime Server Subsystem   描述: 客户端服务子系统,用以控制Windows图形相关子系统。   是否为系统进程: 是 (4)   ddhelp.exe   进程文件: ddhelp or ddhelp.exe   进程名称: DirectDraw Helper   描述: DirectDraw Helper是DirectX这个用于图形服务的一个组成部分。   是否为系统进程: 是 (5)   dllhost.exe   进程文件: dllhost or dllhost.exe   进程名称: DCOM DLL Host进程   描述: DCOM DLL Host进程支持基于COM对象支持DLL以运行Windows程序。   是否为系统进程: 是 (6)   inetinfo.exe   进程文件: inetinfo or inetinfo.exe   进程名称: IIS Admin Service Helper   描述: InetInfo是Microsoft Internet Infomation Services (IIS)的一部分,用于Debug调试除错。   是否为系统进程: 是 (7)   internat.exe   进程文件: internat or internat.exe   进程名称: Input Locales   描述: 这个输入控制图标用于更改类似国家设置、键盘类型和日期格式。   是否为系统进程: 是 (8)   kernel32.dll   进程文件: kernel32 or kernel32.dll   进程名称: Windows壳进程   描述: Windows壳进程用于管理多线程、内存和资源。   是否为系统进程: 是 (9)   lsass.exe   进程文件: lsass or lsass.exe   进程名称: 本地安全权限服务   描述: 这个本地安全权限服务控制Windows安全机制。   是否为系统进程: 是 (10)   mdm.exe   进程文件: mdm or mdm.exe   进程名称: Machine Debug Manager   描述: Debug除错管理用于调试应用程序和Microsoft Office中的Microsoft Script Editor脚本编辑器。   是否为系统进程: 是 (11)   mmtask.tsk   进程文件: mmtask or mmtask.tsk   进程名称: 多媒体支持进程   描述: 这个Windows多媒体后台程序控制多媒体服务,例如MIDI。   是否为系统进程: 是 (12)   mprexe.exe   进程文件: mprexe or mprexe.exe   进程名称: Windows路由进程   描述: Windows路由进程包括向适当的网络部分发出网络请求。   是否为系统进程: 是 (13)   msgsrv32.exe   进程文件: msgsrv32 or msgsrv32.exe   进程名称: Windows信使服务   描述: Windows信使服务调用Windows驱动和程序管理在启动。   是否为系统进程: 是 (14)   mstask.exe   进程文件: mstask or mstask.exe   进程名称: Windows计划任务   描述: Windows计划任务用于设定继承在什么时间或者什么日期备份或者运行。   是否为系统进程: 是 (15)   regsvc.exe   进程文件: regsvc or regsvc.exe   进程名称: 远程注册表服务   描述: 远程注册表服务用于访问在远程计算机的注册表。   是否为系统进程: 是 (16)   rpcss.exe   进程文件: rpcss or rpcss.exe   进程名称: RPC Portmapper   描述: Windows 的RPC端口映射进程处理RPC调用(远程模块调用)然后把它们映射给指定的服务提供者。   是否为系统进程: 是 (17)   services.exe   进程文件: services or services.exe   进程名称: Windows Service Controller   描述: 管理Windows服务。   是否为系统进程: 是 (18)   smss.exe   进程文件: smss or smss.exe   进程名称: Session Manager Subsystem   描述: 该进程为会话管理子系统用以初始化系统变量,MS-DOS驱动名称类似LPT1以及COM,调用Win32壳子系统和运行在Windows登陆过程。   是否为系统进程: 是 (19)   snmp.exe   进程文件: snmp or snmp.exe   进程名称: Microsoft SNMP Agent   描述: Windows简单的网络协议代理(SNMP)用于监听和发送请求到适当的网络部分。   是否为系统进程: 是 (20)   spool32.exe   进程文件: spool32 or spool32.exe   进程名称: Printer Spooler   描述: Windows打印任务控制程序,用以打印机就绪。   是否为系统进程: 是 (21)   spoolsv.exe   进程文件: spoolsv or spoolsv.exe   进程名称: Printer Spooler Service   描述: Windows打印任务控制程序,用以打印机就绪。   是否为系统进程: 是 (22)   stisvc.exe   进程文件: stisvc or stisvc.exe   进程名称: Still Image Service   描述: Still Image Service用于控制扫描仪和数码相机连接在Windows。   是否为系统进程: 是 (23)   svchost.exe   进程文件: svchost or svchost.exe   进程名称: Service Host Process   描述: Service Host Process是一个标准的动态连接库主机处理服务。   是否为系统进程: 是 (24)   system   进程文件: system or system   进程名称: Windows System Process   描述: Microsoft Windows系统进程。   是否为系统进程: 是 (25)   taskmon.exe   进程文件: taskmon or taskmon.exe   进程名称: Windows Task Optimizer   描述: windows任务优化器监视你使用某个程序的频率,并且通过加载那些经常使用的程序来整理优化硬盘。   是否为系统进程: 是 (26)   tcpsvcs.exe   进程文件: tcpsvcs or tcpsvcs.exe   进程名称: TCP/IP Services   描述: TCP/IP Services Application支持透过TCP/IP连接局域网和Internet。   是否为系统进程: 是 (27)   winlogon.exe   进程文件: winlogon or winlogon.exe   进程名称: Windows Logon Process   描述: Windows NT用户登陆程序。   是否为系统进程: 是 (28)   winmgmt.exe   进程文件: winmgmt or winmgmt.exe   进程名称: Windows Management Service   描述: Windows Management Service透过Windows Management Instrumentation data (WMI)技术处理来自应用客户端的请求。   是否为系统进程: 是 编辑本段进程管理   操作系统的职能之一,主要是对处理机进行管理 。为了提高CPU的利用率而采用多道程序技术。通过进程管理来协调多道程序之间的关系,使CPU得到充分的利用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

viper困告了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值