正在加载图片...
队列中接收指定类型的消息;用户在建立了消息队列后,可利用 nsgct系统调用来读取它的 状态信息并进行修改,如査询消息队列描述符、修改消息队列的许可权等。 (4)共享存储区:共享存储区是UNⅨX系统中通信速度最高的一种通信机制。该机制可使 若干进程共享主存中的某一个区域,且使该区域出现在多个进程的虚地址空间中。另一方面, 个进程的虚地址空间中又可连接多个共享存储区,每个共享存储区都有自己的名字。当进程 间欲利用共享存储区进行通信时,须首先在主存中建立一共享存储区,然后将它附接到自己的 虚地址空间上。此后,进程对该区的访问操作,与对其虚地址空间的其他部分的操作完全相同 进程之间以后便可通过对共享存储区中数据的读/写来进行直接通信。当用户需要使用该机制 时,必须自己设置这种设施,才能保证实现正确的通信。 当进程要利用共享存储区进行通信时,应先利用系统调用 shmget建立一共享存储区。如 果该共享存储区已由其他进程建立,则返回其描述符 shmi:进程在建立了一共享存储区并获 得了其描述符后,还须利用系统调用 shmat(将共享存储区附接到进程的虚地址空间上。此后 共享存储区便成为进程虚地址空间的一部分。进程可采用与其他虚地址空间一样的存取方法 来存取它。当进程不再需要共享存储区时,应利用系统调用 shmdt o将共享存储区与进程断 接:如同消息机制一样,可以用 sheet10系统调用对共享存储区的状态信息进行读取和修改。 当所有进程都与共享存储区断接时,便可删除该共享存储区 (5)信号量 NIX System V中采用的是信号量集机制,即由一组信号量构成的信号量集。传统的信号 量机制是对信号量施加P和V操作,而 System V中是利用 semop o系统调用来对指定信号量 进行操作。 用户可利用系统调用 semget0来建立信号量集;一旦信号量集被创建成功,便可利用 semop o系统调用对这组信号量进行操作。 8.1.3存储器管理 在早期的UNX系统中,为提高内存的利用率,己提供了内存与外存之间的进程对换机制 在 UNIX SystemⅤ中,除保留了对换功能外,还支持请求调页的存储管理方式,内存空间的分配 与回收均以页为单位进行。每个页面的大小随版本不同而异,一般在512B-4KB之间。 1.请求调页管理的数据结构 在UNIX系统中,为实现请求调页,核心配置了四种数据结构 (1)页表: UNIX SyStem V将进程的每个区分为若干页,以将它们分配到不相邻的物理块 中,为此每个区设置了一张页表。为了支持请求调页,每个页表项中需包含以下字段:物理块 号、年龄位、访问位、修改位、有效位、写时拷贝位和保护位 (2)磁盘块描述表:在UNIX系统中,每个页表项对应一个磁盘块描述项,其中记录了各页 面的磁盘拷贝所在的磁盘块号。一个页面的内容或在一个对换设备的特定块中,或在一个可执 行文件中。如果该页在一个可执行文件中,此时磁盘块描述项中的存储器类型为File,设备块 号是该页在文件中的逻辑块号。如果该页面在对换设备上,则此时的存储器类型为Disk,对换 设备号和块号则用于指示该页面的拷贝所驻留的逻辑对换设备和相应的盘块号 (3)页面数据表:每个页面数据表项描述内存中的一个物理页,每个表项包含:页状态、 内存引用计数、逻辑设备和指向空闲页链表中下一个页面数据表项的指针和指向散列队列中 下一个页面数据表项的指针。 在系统初启时,核心将所有的页面数据表项链接为一个空闲页链表,形成空闲页缓冲池。 为给一个区分配一个物理页,核心从空闲链表之首摘下一个空闲页表项,修改其对换设备号和 块号后,将它放到相应的散列队列中 (4)对换使用表:对换设备上的每一页都占有对换使用表的一个表项,表项中含有一个引 用计数,其数值表示有多少页表项指向该页队列中接收指定类型的消息;用户在建立了消息队列后,可利用 msgctl 系统调用来读取它的 状态信息并进行修改,如查询消息队列描述符、修改消息队列的许可权等。 (4)共享存储区:共享存储区是 UNIX 系统中通信速度最高的一种通信机制。该机制可使 若干进程共享主存中的某一个区域,且使该区域出现在多个进程的虚地址空间中。另一方面, 一个进程的虚地址空间中又可连接多个共享存储区,每个共享存储区都有自己的名字。当进程 间欲利用共享存储区进行通信时,须首先在主存中建立一共享存储区,然后将它附接到自己的 虚地址空间上。此后,进程对该区的访问操作,与对其虚地址空间的其他部分的操作完全相同。 进程之间以后便可通过对共享存储区中数据的读/写来进行直接通信。当用户需要使用该机制 时,必须自己设置这种设施,才能保证实现正确的通信。 当进程要利用共享存储区进行通信时,应先利用系统调用 shmget 建立一共享存储区。如 果该共享存储区已由其他进程建立,则返回其描述符 shmid;进程在建立了一共享存储区并获 得了其描述符后,还须利用系统调用 shmat()将共享存储区附接到进程的虚地址空间上。此后, 共享存储区便成为进程虚地址空间的一部分。进程可采用与其他虚地址空间一样的存取方法 来存取它。当进程不再需要共享存储区时,应利用系统调用 shmdt()将共享存储区与进程断 接;如同消息机制一样,可以用 shmctl()系统调用对共享存储区的状态信息进行读取和修改。 当所有进程都与共享存储区断接时,便可删除该共享存储区。 (5)信号量 UNIX System V 中采用的是信号量集机制,即由一组信号量构成的信号量集。传统的信号 量机制是对信号量施加 P 和 V 操作,而 System V 中是利用 semop()系统调用来对指定信号量 进行操作。 用户可利用系统调用 semget()来建立信号量集;一旦信号量集被创建成功,便可利用 semop()系统调用对这组信号量进行操作。 8.1.3 存储器管理 在早期的 UNIX 系统中,为提高内存的利用率,己提供了内存与外存之间的进程对换机制。 在 UNIX System V 中,除保留了对换功能外,还支持请求调页的存储管理方式,内存空间的分配 与回收均以页为单位进行。每个页面的大小随版本不同而异,一般在 512B-4KB 之间。 1.请求调页管理的数据结构 在 UNIX 系统中,为实现请求调页,核心配置了四种数据结构: (1)页表:UNIX System V 将进程的每个区分为若干页,以将它们分配到不相邻的物理块 中,为此每个区设置了一张页表。为了支持请求调页,每个页表项中需包含以下字段:物理块 号、年龄位、访问位、修改位、有效位、写时拷贝位和保护位。 (2)磁盘块描述表:在 UNIX 系统中,每个页表项对应一个磁盘块描述项,其中记录了各页 面的磁盘拷贝所在的磁盘块号。一个页面的内容或在一个对换设备的特定块中,或在一个可执 行文件中。如果该页在一个可执行文件中,此时磁盘块描述项中的存储器类型为 File,设备块 号是该页在文件中的逻辑块号。如果该页面在对换设备上,则此时的存储器类型为 Disk,对换 设备号和块号则用于指示该页面的拷贝所驻留的逻辑对换设备和相应的盘块号。 (3)页面数据表:每个页面数据表项描述内存中的一个物理页,每个表项包含:页状态、 内存引用计数、逻辑设备和指向空闲页链表中下一个页面数据表项的指针和指向散列队列中 下一个页面数据表项的指针。 在系统初启时,核心将所有的页面数据表项链接为一个空闲页链表,形成空闲页缓冲池。 为给一个区分配一个物理页,核心从空闲链表之首摘下一个空闲页表项,修改其对换设备号和 块号后,将它放到相应的散列队列中。 (4)对换使用表:对换设备上的每一页都占有对换使用表的一个表项,表项中含有一个引 用计数,其数值表示有多少页表项指向该页
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有