操作系统中的一些基本概念

1.进程和线程

进程
进程是具有一定功能的程序关于某一个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。

线程
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。

进程和线程的区别与联系

线程与进程的联系

(1)一个进程可以有多个线程,但至少拥有一个线程,一个线程只能属于一个进程,线程是CPU执行和调度的最小单位。
(2)进程将自身拥有的资源分配给线程,同一进程的所有线程共享该进程的资源,共享代码段(代码和常量)、数据段(全局变量和静态变量)、扩展段(堆存储),但每一个线程又有自己的栈段(运行时段)用来存储临时变量和局部变量。
(3)进程的CPU资源分配给线程,真正在CPU上运行的是线程。
(4)线程在执行中需要协助同步,而不同进程中的线程需要消息通信的方法进行同步。

线程与进程的区别

(1)进程有自己独立的地址空间,线程没有。
(2)进程是系统资源分配的最小单位,线程是CPU调度执行的最小单位。
(3)进程和线程的通信方式不同。
(4)进程上下文切换开销大,线程开销小。
(5)一个进程挂掉了不会影响其他进程的运行,而一个线程挂掉了会影响进程中其它线程的执行。
(6)对进程进行相关操作开销较大,线程开销较小。

2.进程的常见状态和转换

进程最常见的三种状态为:阻塞状态、就绪状态、运行状态。
三种状态之间的转换如下图:

进程状态转换图

阻塞状态:进程等待某种条件,在条件出现之前无法执行。
就绪状态:进程已经获得除CPU以外的所有运行资源,等待CPU资源分配。
运行状态:进程在CPU上运行,此状态的进程数小于CPU数。

3.进程同步

进程同步主要是为了让多个进程在执行次序上进行协调,使并发执行的进程能有效的进行资源共享与合作,从而使程序的执行具有可再现性。
进程同步机制遵循的原则:
(1)忙则等待(保证对临界区互斥访问)。
(2)空闲让进。
(3)有限等待(避免饥饿现象)。
(4)让权等待(进程无法进入自己的临界区时应该让出CPU处理资源,以免陷入忙等状态)。

4.线程同步

实现线程同步的三种常用方法:互斥量、信号量、事件。
(1)互斥量:采用互斥对象机制,只有获得互斥量的线程才能访问临界资源,因为互斥对象只有一个,所有可以防止多个线程同时访问临界资源。
(2)信号量:允许多个线程同时访问公共资源,但是需要限制同时访问公共资源的最大线程数。
(3)事件:通过通知操作来保持多线程的同步,还可以方便的实现多线程的优先级比较。

5.进程的通信方式

进程的通信方式有管道、系统IPC(消息队列、共享存储,信号量),socket。
管道又分为:普通管道、流管道、命名管道。

  • 管道是一种半双工通信方式,数据只能单向流动,而且数据只能在具有亲缘关系的进程间流动,通常在父子进程之间流动。
  • 命令管道也是一种半双工通信方式,但是它允许非亲缘关系进程通过管道进行通信。
  • 信号量相当于计数器,用于同时访问公共资源的进程数。
  • 消息队列是消息链表,存放在内核中由消息队列标识符标识。
  • 信号是一种比较复杂的通信方式,用于通知某一个进程事件发生。
  • 共享存储是映射一段能被其它进程访问的内存空间,这段空间由一个进程创建,但是多个进程可以访问。

6.死锁

在两个或多个并发进程中,如果每一个进程持有某种资源而又等待其它进程释放它或他们现在保持着的资源,在未改变这种状态之前不能向前推进,称这一组进程产生了死锁。通俗来说就是两个或多个进程无限期的阻塞并互相等待的一种状态。
死锁产生的四个必要条件(只要破坏一个就可以避免死锁的产生)
1.互斥资源条件,一个资源一次只能被一个进程使用。

2.请求与保持条件,一个进程因请求资源被阻塞时,对已持有的资源保持不放。
3.不剥夺条件,进程已持有的资源在未完全使用之前不能强行剥夺。
4.循环等待条件,若干进程之间形成一种首尾相接的环形等待资源关系。

7.小结

内容编写参考于这两篇博客:
https://www.cnblogs.com/inception6-lxc/p/9073983.html
https://blog.csdn.net/gui951753/article/details/79489748
以上是一些操作系统中的常见概念和知识重点,在很多面试或考试中经常出现。虽然曾经学过但是有些概念记得不是很清楚,现在重新回顾一遍受益匪浅,在这里总结出来供大家学习参考,如有不对的地方请大神指正。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342