操作系统

Posted miraclemaker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统相关的知识,希望对你有一定的参考价值。

1.操作系统:

  • 定义:管理计算机硬件和软件系统的程序,屏蔽了硬件层的复杂性,内核是操作系统的核心部分,负责文件管理,硬件管理,应用程序管理,内存管理,是连接硬件和软件的桥梁。
  • 什么是系统调用:一般我们的操作都是操作与自身有关的数据,如果想要操作计算机资源就需要通过系统调用方式请求操作系统代我们进行处理,如文件操作,内存管理,设备操作,进程操作等。
  • 内核和用户的物理划分:在虚拟地址空间中高位是只有内核态才能操作,低位是内核态和用户态都能操作

2.进程和线程的区别:

  • 进程通信方式:

。管道:匿名管道用于优亲缘关系线程通信,有名管道任意线程可互相通信,先进先出。

。消息队列:读取数据可以按类型读取,承载信息量比较多,具有特定的格式。

。共享内存:进程之间看到其他进程对内存做出的改变,最有用。

。套接字:客户端和服务器间的通信,根据套接字,遵循某种协议HTTP。

  • 进程上下文切换:和线程很类似,先将信息存储到PCB中,在根据进程调度算法唤醒下一个进程,将这个进程的数据恢复,从程序计数器指向的断点处恢复运行。
  • 进程调度算法:

。先到先服务:先到的线程先分配资源。

短作业:预估谁运行时间最短给谁分配资源。
。时间片轮转:每个线程分配时间片,允许其运行的时间。

。多级反馈:使得高优先级和短作业的线程先完成,公认比较好

。优先级:为每个线程分配优先级,优先级高的先执行。

  • 线程同步方式:就是如何避免多线程争抢资源

。加锁:synchroized或lock锁住互斥对象,同一时间只有一个线程可以访问资源。

。信号量:允许同一时间多线程访问统一资源,但是能够控制数量。

。等待通知:采用wait和nofity来通知线程谁来访问。

3.内存管理:

  • 定义:负责内存的分配,回收,地址的转换。
  • 内存管理机制:分为连续性和非连续性

。块式管理:连续分配一大块内存使用,非常浪费。

。页式管理:分配一页一页的内存使用,无实际意义,是物理单位,非连续性。

。段式管理:分成一段一段的内存使用,有实际意义,是逻辑单位,非连续性。

。段页式管理:先把内存分成段,段内在分页,段间和段内都是离散的。

  • 页表的重要概念:

。多级页表:每个进程都要有页表,特别浪费空间,采用多级页表存储那些我们用到的映射,最后形成了页表树,属于时间换空间了。

。快表:跟缓存很像,记录着物理地址,能够帮助页表快速完成逻辑地址和物理地址的转换。

  • 分页机制和分段机制区别:

。相同点:都提高了内存利用率,减少了内存碎片,都是非连续性分配内存的方式。

。不同点:页大小固定,没有实际意义;段大小根据程序决定,可以分为数据段,代码段等有意义。

  • 逻辑(虚拟)地址和物理地址:

。逻辑地址:java引用类型中保存的地址就是逻辑地址,逻辑地址由操作系统决定。

。物理地址:是数据存放的真正地址,是寄存器中的地址。

  • CPU 寻址:就是我们现在用的虚拟寻址。
  • 为什么要设置虚拟地址空间:

。如果直接对物理内存进行修改时容易破坏操作系统,并且程序之间可能同时访问同一块地址造成冲突

。可以使用相邻的虚拟地址访问不相邻的物理地址,并且虚拟地址之间彼此隔离,不允许线程修改其他线程正在操作的物理地址

4.虚拟内存:

  • 定义:为每个线程提供了一个私有空间,把内存扩展到外存。在程序执行时,把当前正在执行的放入内存,大部分放入外存,执行完再去外存取数据与内存交换,使得程序有一种自己占用了全部内存的错觉
  • 局部性原理:虚拟内存实现的理论基础:我们发现程序在运行时需要的资源总是局部的,执行过的方法总是会再次执行,请求的资源其相邻资源也总会被请求。因为指令顺序存放,数组表等数据 也是顺序存放的。
  • 页面置换算法:发生缺页中断时,判断将内存的哪一部分移除与外存做交换。

。先进先出:淘汰最早进入内存的页;

。最久未使用:淘汰最久未被使用的页;

。最少被使用:淘汰到目前为止使用次数最少的页;

  • 技术实现:

。请求分页:先将要执行的部分段,如果发现要执行的不存在,通过页面置换算法将外存的段再调过来

。请求分段:与分页类似;

。请求段页式管理:与分页类似;

5.linux IO:

  • 主要有bio,nio,aio,信号io,io多路复用(epoll模型)

6.linux基础命令:

  • 目录:

。cd:切换目录;cd conf:进入当前目录下的conf目录;cd .. 返回上一级目录;cd /切换到根目录。

。mkdir 目录名称:创建一个目录。

。ls/ll:查看目录信息,ll看的全面。

。mv:修改目录名称:mv 原目录名称 修改后名称;移动目录位置 mv 原目录位置 修改后位置。

。rm -rf :删除目录或者文件。

  • 文件:

。touch 文件名称:创建新文件。

。cat 文件:查看文件。

。vim 文件:编辑文件。

。tar -zcvf 打包压缩后的文件名 要打包压缩的文件 :压缩文件。

。tar -xvf test.tar.gz -C 指定位置 :解压缩文件到指定位置。

  • 权限:

。chmod:修改目录/文件权限:可读r(4),可写w(2),可执行x(1)

。权限改为文件所有者所有权限,文件所有者所在组可读写,其余用户只可读:chmod 764 aaa.txt;

  • 其余:

。ifconfig:查看网卡信息,用来看ip地址。

。ping:与其他机器的连接情况。

以上是关于操作系统的主要内容,如果未能解决你的问题,请参考以下文章

初入操作系统——操作系统概述

操作系统—— 概论:操作系统结构

统信UOS桌面操作系统博文汇总目录

统信UOS桌面操作系统博文汇总目录

操作系统-移动操作系统-百科: iOS(苹果公司的移动操作系统)

初入操作系统——操作系统概述