2023操作系统 您所在的位置:网站首页 ds是什么单词缩写 2023操作系统

2023操作系统

2023-03-29 10:34| 来源: 网络整理| 查看: 265

记得当初大学老师讲操作系统时候, 关于信号灯, 抛出一系列的概念 让人很崩溃

如p操作 v操作. 临界区 临界资源 抓破脑袋先搞不明白, 每个字都认识, 连起来到底是想表达什么东西. 不过大学课程定位不一样, 它的理论不拘泥于哪种操作系统, 只是个笼统的理论. 目标是让你学了后能写个操作系统. -_-|| 也没有实际的系统上去敲敲代码或者执行一些命令感性的认识一下. 因此操作系统感觉变成了一门文科课程, 更多的需要死记硬背...

这个文档稍做解释.

路上的信号灯是这样的

它用来同步人和车辆, 同步一词,如果没什么计算机基础, 很难理解两个字的含义. 此处可以理解为先后关系.

即马路人和车都要用, 谁先用, 谁后用. 则通过信号灯来安排. 红灯车用, 绿灯人用. 这样同一时刻路上只有一个主.

linux里也有信号灯(信号量)Semaphore Arrays, 本文我们将它翻译成信号量.

ipcs -s ------ Semaphore Arrays -------- key semid owner perms nsems 0xd20300c0 0 root 666 1 0xd30300c0 1 root 666 1 0xd40300c0 2 root 666 1 0xd2030133 3 root 666 1 0xd2030131 4 root 666 1

最初提出这个概念的是一个荷兰的科学家Edsger Dijkstra, 为啥提他, 因为对Semaphore Arrays的操作有p操作和v操作. 很费解到底是哪两个单词缩写.它们是两个荷兰语的首字母, 让人大跌眼镜... 下文会有解释.

p和v是信号量操作中的缩写,它们分别来自荷兰语中的“proberen”和“verhogen”这两个词。

信号量中p和v是什么缩写?

p和v是信号量操作中的缩写,它们分别来自荷兰语中的“proberen”和“verhogen”这两个词。

proberen表示“尝试”、“试图”,在信号量操作中,p操作即是“试图获得信号量”。如果信号量计数器的值大于0,那么p操作会将计数器的值减1,并继续执行代码;否则p操作会等待,直到有其他进程释放信号量。

verhogen表示“增加”、“提高”,在信号量操作中,v操作即是“释放信号量”。v操作会将信号量计数器的值加1,如果有其他进程在等待该信号量,那么它们中的一个将被唤醒并获得信号量,继续执行代码。

由于荷兰人Edsger Dijkstra首先提出了使用信号量来实现并发控制的概念,因此p和v操作成为了信号量操作中的标准术语。

共享内存是临界区吗?

共享内存并不是临界区,但是在多进程或多线程编程中,共享内存常常被用作共享资源,因此访问共享内存的代码区域就成为了临界区。

共享内存是指多个进程可以同时访问的一块内存区域,不同进程可以通过共享内存来交换数据。在多进程或多线程编程中,多个进程或线程需要互斥地访问共享内存,以避免数据不一致或其他问题。

因此,在访问共享内存的代码区域,如读写共享内存的代码,需要使用同步机制(如互斥锁、信号量等)来保证同一时间只有一个进程或线程可以访问共享内存,避免数据竞争和其他并发问题。

信号量对象的创建

#include #include #include #include #define SEM_KEY 1234 int main() { int semid; semid = semget(SEM_KEY, 1, IPC_CREAT | 0666); if(semid


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有