操作系统
王小闹儿
这个作者很懒,什么都没留下…
展开
-
unix网络编程卷二——进程间通信
一、简介第一章 简介1.1 概述1.2 进程、线程与信息共享1.3 IPC对象的持续性1.4 名字空间1.5 fork、exec、exit对IPC对象的影响第二章 Posix IPC2.1 概述2.2 IPC名字px_ipc_name函数2.3 创建与打开IPC通道未完待续...原创 2020-06-02 07:55:15 · 516 阅读 · 0 评论 -
清华大学操作系统课程实验
课程 链接:https://www.bilibili.com/video/av94122925/?spm_id_from=333.788.videocard.0原创 2020-05-14 08:31:24 · 1149 阅读 · 0 评论 -
死锁
死锁的基本概念一组进程中,每个进程都无限等待被该组进程中其他进程占用的资源,因为永远无法得到该资源,这种现象叫——进程死锁为什么会出现死锁资源数量有限 锁和信号量的错误使用资源分类死锁、活锁、饥饿的区别产生死锁的必要条件——如果死锁发生了,这四个条件就一定存在资源分配图死锁...原创 2019-03-30 16:35:22 · 488 阅读 · 0 评论 -
处理机(CPU)调度与死锁
在多道程序环境下,主存中有着多个进程,其数目往往多于处理机数目。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之执行。分配处理机的任务是由处理机调度程序完成的。linux采用抢占式调度算法处理机调度的层次在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对于批量型作业而言,通常需要经历作业调度(又称高级调度或长程调...原创 2019-02-27 21:04:09 · 772 阅读 · 0 评论 -
面试考点——中断和异常的区别
中断与异常的区别中断是指 CPU 对系统发生某事件时的这样一种响应: CPU 暂停正在执行的程序,在保留现场后自动地转去执行该事件的中断处理程序;执行完后,再返回到原程序的断点处继续执行。下图 表示中断时 CPU 的活动轨迹。还可进一步把中断分为外中断和内中断。外中断——就是我们指的中断——是指由于外部设备事件所引起的中断,如通常的磁盘中断、打印机中断等; 内中断——就是异常...原创 2019-03-02 17:47:14 · 32728 阅读 · 5 评论 -
面试考点——用户态和内核态的区别
在计算机系统中,通常运行着两类程序:系统程序和应用程序,为了保证系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:系统态(也称为管态或核心态),操作系统在系统态运行——运行操作系统程序 用户态(也称为目态),应用程序只能在用户态运行——运行用户程序在实际运行过程中,处理机会在系统态和用户态间切换。相应地,现代多数操作系统将 CPU 的指令集分为特权指令和非特权指令两类。1)...原创 2019-03-02 17:44:14 · 17322 阅读 · 3 评论 -
系统调用
程序接口是 OS 专门为用户程序设置的,也是用户程序取得 OS 服务的唯一途径。程序接口通常是由各种类型的系统调用所组成的,因而,也可以说,系统调用提供了用户程序和操作系统之间的接口,应用程序通过系统调用实现其与 OS 的通信,并可取得它的服务。处理器(CPU)=运算器+控制器+寄存器+高速缓存系统调用的基本概念通常,在 OS 的核心中都设置了一组用于实现各种系统功能...原创 2019-03-02 17:47:48 · 17321 阅读 · 5 评论 -
死锁
死锁概念在多线程环境中,我们经常会遇到多个线程访问同一个共享资源的情况,这个时候必须考虑如何维护数据一致性,常见的方式是加锁处理。只有拿到锁的线程才可以访问共享资源,通过锁就可以让线程对共享资源的访问都是顺序的,避免出现一些数据不一致的问题。在使用锁的过程中同样也有风险,最为常见的就是死锁现象。死锁就相当于绳子打死结一样,解不开了。在程序中出现这样的情况往往是由于多个线程同时锁住多个资源不...原创 2019-02-28 12:40:33 · 247 阅读 · 4 评论 -
内存管理
虚拟存储技术当进程运行时,先将其一部分装入内存,另一部分暂留在磁盘,当要执行的命令或访问的数据不在内存中时,由操作系统自动完成将他们从磁盘调入内存的工作。虚拟地址空间——分配给进程的虚拟内存 虚拟地址——在虚拟内存中指令或数据的位置,该位置可以被访问,仿佛他是内存的一部分存储器的层次结构多级存储器结构对于通用计算机而言,存储层次至少应具有三级:最高...原创 2019-03-01 09:03:59 · 916 阅读 · 0 评论 -
进制转换
10进制转2进制 2进制转10进制 10进制转8进制十进制数字每个都除以8 8进制转10进制 2进制转8进制二进制每三位等于一位八进制数,凑不够的在前面加“0” 8进制转2进制每位8进制数等于三位2进制数 10进制转16进制 16进...原创 2019-02-08 14:13:38 · 589 阅读 · 4 评论 -
进程与线程(三)——进程/线程间通信、同步互斥、进程间通信机制
在用户空间中创建线程用库函数实现线程(《现代操作系统》 P61)#include<pthread.h>#include<stdio.h>#include<stdlib.h>#define NUMBER_OF_THREADS 10void *print_hello_world(void* tid){ printf("hello w...原创 2018-12-04 19:35:16 · 2927 阅读 · 0 评论 -
进程与线程 thread (二)——线程
为什么线程会有用以及如何使用它们人们需要线程的主要原因:1、在许多应用中同时发生着多种活动。其中某些活动随着时间的推移会阻塞。通过将这些应用程序分解成可以准并行运行的多个顺序线程,程序设计模型会变得更简单。2、线程比进程更轻量级,所以他们比进程更容易创建,也更容易撤销。3、若多线程都是CPU密集型的,那么并不能获得性能上的增强,但是如果存在着大量的计算和大量的I/O处理,拥有...原创 2018-12-01 02:13:22 · 289 阅读 · 0 评论 -
进程process pid 与线程(一)——进程
进程,是对正在运行的程序的一个抽象。进程进程由三部分组成程序段 相关的数据段 PCB ——进程控制块,即 PCB(Process Control Block)CPU由一个进程快速切换至另一个进程,使得每个进程运行几十或几百毫秒,从而产生一种并行的错觉。进程模型一个进程就是一个正在执行程序的实例,包括程序计数器、寄存器和变量当前值。从概念...原创 2018-11-20 16:36:20 · 5945 阅读 · 0 评论