zoukankan      html  css  js  c++  java
  • 操作系统理论细节 1

    分时操作系统具有以下特征: | 实时操作系统基本特征:
    1.多路性 | 1.及时性
    2.交互性 | 2.可靠性
    3.独占性 |
    4.及时性 |

    执行系统调用的过程是这样的:正在运行的进程先传递系统调用参数,然后由陷入(trap)指令负责将用户态转化为内核态,并将返回地址压入堆栈以备后用,接下来CPU执行相应的内核态服务程序,最后返回用户态

    操作系统的五大管理功能:
    (1)作业管理:包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等;
    (2)文件管理:又称为信息管理;
    (3)存储管理:实质是对存储“空间”的管理,主要指对主存的管理;
    (4)设备管理:实质是对硬件设备的管理,其中包括对输入输出设备的分配、启动、完成和回收;
    (5)进程管理:实质上是对处理机执行“时间”的管理,即如何将CPU真正合理地分配给每个任务。

    老问题了:进程与线程的区别

    定义方面:进程是程序在某个数据集合上的一次运行活动;线程是进程中的一个执行路径。
    角色方面:在支持线程机制的系统中,进程是系统资源分配的单位,线程是系统调度的单位。
    资源共享方面:进程之间不能共享资源,而线程共享所在进程的地址空间和其它资源。同时线程还有自己的栈和栈指针,程序计数器等寄存器。
    独立性方面:进程有自己独立的地址空间,而线程没有,线程必须依赖于进程而存在。

    导致一个进程创建另一个进程的典型操作有四种:
    1 用户登录;系统为用户创建一个进程,并插入就绪队列
    2 作业调度
    3 提供服务 系统为用户请求创建一个进程
    4 应用请求 用户程序自己创建进程

    1, spinlock 介绍
    spinlock又称自旋锁,线程通过busy-wait-loop的方式来获取锁,任时刻只有一个线程能够获得锁,其他线程忙等待直到获得锁。spinlock在多处理器多线程环境的场景中有很广泛的使用,一般要求使用spinlock的临界区尽量简短,这样获取的锁可以尽快释放,以满足其他忙等的线程。Spinlock和mutex不同,spinlock不会导致线程的状态切换(用户态->内核态),但是spinlock使用不当(如临界区执行时间过长)会导致cpu busy飙高。因为pthread_spin_lock 自旋锁,在进入阻塞队列之前会先跑几个循环,然后再去尝试获取锁,直到自旋的次数超过阈值,才进入阻塞队列,此时才切换状态

    2 ,使用准则

    Spinlock使用准则:临界区尽量简短,控制在100行代码以内,不要有显式或者隐式的系统调用,调用的函数也尽量简短。例如,不要在临界区中调用read,write,open等会产生系统调用的函数,也不要去sleep;strcpy,memcpy等函数慎用,依赖于数据的大小。

    虚存: 把辅助存储器作为对主存储器 的扩充, 向用户提供一个比实际主存大得多的的地址空间。即充分利用了辅存的地址空间

    分时系统:一个系统可以同时为两个或两个以上的账户服务(现在流行的PC,服务器都是采用这种运行模式)
    实时系统:能立即对指令做出反应的操作系统(一般用于单片机上,比如电梯的上下控制中,对于按键等动作要求进行实时处理)

    支撑软件是支撑各种软件的开发与维护的软件,又称为软件开发环境。它主要包括环境数据库、各种接口软件和工具组。著名的软件开发环境有IBM公司的Web Sphere,微软公司的Studio.NET等。
    包括一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具)。

    软件系统(Software Systems)是指由 系统软件 、 支撑软件 和 应用软件 组成的 计算机 软件系统,它是 计算机系统 中由 软件 组成的部分。
    不十分准确的说,
    –系统软件:操作系统,
    –支撑软件:软件开发环境

    首先互斥变量是相互对称的,第二没有互斥量会造成死锁。根据这两个条件就可以排除ABC。一个产品只能被一个消费者或一个生产者使用,必须要用互斥量,否则会进入两个角色会进入请求等待状态。

    索引结构指一个文件的信息存放在若干不连续的物理块中,系统为每个文件建立一个专用的数据结构——索引表,并将这些块的块号存放在索引表中。有点是保留了链接结构的优点,同时解决了其缺点,即能顺序存取,又能随机存取,满足了文件动态增长,插入删除的需求,也能充分利用外存空间。缺点是索引表本身带来的系统开销。

    在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。每个段都有自己的名字。为了实现简单起见,通常可用一个段号来代替段名,每个段都从0开始编址,并采用一段连续的地址空间。其逻辑地址由段号(段名)和段内地址所组成。所以第一次访问段名,第二次访问段内地址。

    1. 假如有快表,快表命中只需要访问主存一次,直接到指令的地方取指令即可;

    2. 假如没有快表或者快表没有命中,需要两次访问主存:

    第一次访问页表或者段表,找到指令或者操作数地址,第二次取数或取指令;

    1. 假如页表或者段表也没有命中,就会发生内外存置换,这个时候需要访问主存三次。

    虽然段表是二维的,但是逻辑地址也是一次访问的,和快表没啥区别

    链接分硬链接和符号链接。
    符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l,链接文件具有新的i节点。

    硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同。

    管程是管理进程间同步的机制,保证进程互斥的访问共享变量,并方便的阻塞、唤醒进程

    面向块:将信息保存在块中,传输时一次传一块,块设备可以按照任意顺序进行访问,以块为单位进行操作,例如磁盘、usb智能卡等;

    面向流:又称面向字符,将信息以字节流的方式输入输出数据,没有块结构,字符设备必须以串行顺序依次进行访问的设备,如触摸屏、磁带驱动器、鼠标、终端,,打印机等。

    当进程在运行过程中由于某种原因停止运行
    (1)当进程调度采用的是时间片轮转的调度算法,当时间片结束后:该进程为就绪状态,进入就绪队列;
    (2)当进程是由于请求某种资源而停止运行时;分为静止阻塞和活动阻塞两种状态;
    a:当进程停止运行且没有被挂起(执行Blocked原语)时,为活动阻塞状态;
    b.当进程停止运行且被挂起时,为静止阻塞状态;
    (3)当进程停止是由于用户或者其他原因强行结束时,为终止状态

    文件物理结构即磁盘文件结构
    连续文件类似于数组,顺序访问速度快,但是增删数据时要移动其他数据块,所以速度很慢;
    链接文件类似于链表,随机访问速度慢,增删数据很快,不需要移动数据块,只需要改变指针指向即可;
    索引文件糅合了连续文件和链接文件,但更适合大文件;
    Windows使用显式链接文件

  • 相关阅读:
    pycharm专业版破解
    XSS漏洞扫描工具:BruteXSS
    人生第一次成功的sql注入
    黑客学习之信息收集
    redhat 下搭建网站
    网络安全渗透--判断网站使用何种网页语言,判断网站所用服务器
    jqgrid表头上面再加一行---二级表头
    实验吧 burpsuie拦截修改请求
    实验吧 貌似有点难 伪造ip
    实验吧 这个看起来有点简单!&渗透测试工具sqlmap基础教程
  • 原文地址:https://www.cnblogs.com/AmosAlbert/p/13747429.html
Copyright © 2011-2022 走看看