美文网首页
操作系统实验一资料归纳

操作系统实验一资料归纳

作者: EwdAger | 来源:发表于2017-06-12 17:02 被阅读0次

句柄

指导书上出现了一个陌生的名词“句柄(handle)”,感觉比较奇妙,因为在之前编写微信公众号小程序看教程也编写了一个handle程序。所以留档一下吧。

句柄(handle),有多种意义,其中第一种是指程序设计,第二种是指Windows编程。现在大部分都是指程序设计/程序开发这类。
第一种解释:句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。
第二种解释:整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。

实验一中相关函数解释

参考MSDN 中的帮助文件 CreateMutex() 、 OpenMutex() 、 ReleaseMutex() 和WaitForSingleObject()的使用方法,理解父子进程如何利用互斥体进行同步的。给出父子进程同步过程的一个大概描述。

  • CreateMutex()
    CreateMutex()函数可用来创建一个有名或无名的互斥量对象,其函数原型为
HANDLE CreateMutex(
LPSECURITY_ATTRIBUTESlpMutexAttributes, // 指向安全属性的指针
BOOLbInitialOwner, // 初始化互斥对象的所有者
LPCTSTRlpName // 指向互斥对象名的指针
);
  • OpenMutex()
    OpenMutex函数为现有的一个已命名互斥体对象创建一个新句柄,函数原型:
HANDLE OpenMutex(
DWORD dwDesiredAccess, // access
BOOL bInheritHandle, // inheritance option
LPCTSTR lpName // object name
);
  • ReleaseMutex()
    ReleaseMutex是一种线性指令,具有释放线程拥有的互斥体的控制权,函数原型为:
BOOL WINAPI ReleaseMutex(
HANDLE hMutex    //hMutex:HANDLE,制定一个互斥体的句柄。
);
  • WaitForSingleObject()
    当等待仍在挂起状态时,句柄被关闭,那么函数行为是未定义的。该句柄必须具有 SYNCHRONIZE 访问权限。函数原型:
DWORD WINAPI WaitForSingleObject(
__in HANDLE hHandle,
__in DWORD dwMilliseconds
);

参数说明:hHandle[in]对象句柄。可以指定一系列的对象,如Event、Job、Memory resource notification、Mutex、Process、Semaphore、Thread、Waitable timer等。

dwMilliseconds[in]定时时间间隔,单位为milliseconds(毫秒).如果指定一个非零值,函数处于等待状态直到hHandle标记的对象被触发,或者时间到了。如果dwMilliseconds为0,对象没有被触发信号,函数不会进入一个等待状态,它总是立即返回。如果dwMilliseconds为INFINITE,对象被触发信号后,函数才会返回。

相关文章

  • 操作系统实验一资料归纳

    句柄 指导书上出现了一个陌生的名词“句柄(handle)”,感觉比较奇妙,因为在之前编写微信公众号小程序看教程也编...

  • 操作系统实验二归纳

    本实验是要求在linux环境下测试fork()和exec(),并建立一个简单的shell(带cd、env、echo...

  • 个人操作系统

    经过学习,思考,归纳,再学习,思考,归纳。我勾勒出了个人操作系统,如图。 此操作系统参考李笑来老师《财富自...

  • 操作系统实验报告

    一. 实验目的及实验环境 (一) 实验环境 Linux 操作系统 (二)实验目的 实验1 掌握Linux基本命令 ...

  • js-操作系统-node.js

    操作系统实验总结 实验源码 实验一 进程控制 processProject 实验二 分页式存储管理 change...

  • ucore_lab1实验报告

    此篇是学习ucore操作系统lab1的实验报告,参考了很多资料和文章,也学到了不少。 先看要求: 为了实现lab1...

  • 一个简单的时间片轮转多道程序内核代码分析

    网易云课堂《Linux内核分析》作业 实验目的: 运行并分析一个精简的操作系统内核,理解操作系统是如何工作的 实验...

  • 利用Scrapy爬取格言网信息

    实验内容 使用scrapy爬取格言网的内容 实验环境 操作系统:win7 32位操作系统python版本:pyth...

  • 如何写操作系统_01

    1. 操作系统原理与实现 2. uCore 实验 3. rCore 实验 4. 预备知识 5. 操作系统定义(管-...

  • ucore实验之操作系统启动流程

    前言 本文基于 ucore 操作系统实验,简要分析操作系统的启动流程. ucore 操作系统是清华大学用于操作系统...

网友评论

      本文标题:操作系统实验一资料归纳

      本文链接:https://www.haomeiwen.com/subject/jkglqxtx.html