Java(高阶)——操作系统

冯·诺依曼体系结构

也叫普林斯顿体系结构(这个叫法不太常见),99%的程序员都知道这个体系结构是在描述一台计算机是如何构成的。我们常见的计算机比如笔记本;不经常见的如服务器,大部分都遵守冯诺依曼体系结构
在这里插入图片描述

计算机的组成组件

1.输入单元:键盘,扫描仪,写字板等
2.中央处理器(CPU):含有运算器和控制器等
3.输出设备:显示器,打印机

小Tips

1.这里的存储器指的是内存
2.不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入设备以及输出设备)
3.外设(输入设备以及输出设备)要输入或者输出数据,也只能写入内存或者从从内存中读取
4.所有的设备只能直接和内存打交道

操作系统

概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS),即内核+配套的应用程序,用通俗一点的话来说:操作系统其实就是一个搞管理的软件,一方面管理计算机的硬件设备,另一方面管理计算机的软件资源。
在这里插入图片描述
其实上面的图很好理解,举个例子来说,假如我们要在屏幕上输出“hello world”,我们就要现在应用程序中写下代码:System.out.printIn(“hello world”),在代码真正执行起来的时候,printIn会进入到依赖的库代码中,本质上需要操作显示器这个硬件设备来完成显示,printIn然后就会通过相关的系统调用进入到内核中来执行代码,这个内核中的代码再来执行“让显示器输出“这样的动作(内核调用显卡驱动程序,由驱动程序来具体操作显示器)

操作系统如何管理

所谓管理,核心就是两件事:描述、组织

那么如何进行描述与组织呢,就相当于在一个学校中, 校长作为管理者给做为被管理者的学生发奖学金,校长要先知道每个同学的基本信息(姓名、班级、学号、成绩)---->依赖描述。然后校长再在所有的同学信息中进行筛选,选出若干个成绩最好的同学---->依赖组织。

再举一个更加好理解的例子:上面的校长知道每个同学的基本情况这就好比是创建了一个Student类,类中包含一些需要的属性,再根据当前的数据创建一堆Student的实例---->依赖描述。然后再借助一定的数据结构,把这些Student的实例放到一起,然后再按照一定的规则来筛选---->依赖组织

操作系统的作用

1.与硬件交互,管理所有的软硬件资源(对内且对下)
2.为用户程序(应用程序)提供一个良好的执行环境(对外且对上)

文末,许下我的一个圣诞小愿望,西安加油!!!“长安”常安
在这里插入图片描述

  • 31
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
一、UNIX文件系统的基本原理        UNIX采用树型目录结构,每个目录表称为一个目录文件。一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。本次课程设计是要实现一个简单的模拟UNIX文件系统。我们在磁盘中申请一个二进制文件模拟UNIX内存,依次初始化建立位示图区,I节点区,数据块区。 二、基本要点思路         1、模拟磁盘块的实现:因为文件系统需要从磁盘中读取数据操作数据,在实现时是使用文件来模拟磁盘,一个文件是一块磁盘,在文件中以划分磁盘块那样划分不同的区域,主要有三个区域:位图区,inode索引节点区,磁盘块区。位图区我是使用一个512byte的数组存放,inode区和磁盘块区我采用一种自认为比较巧妙的方法,就是存放对象列表,之前说过,在本次实验的所有的结构都使用对象进行存储,而inode节点和磁盘块就是两个重要的数据结构,在初始化时我实例化32个inode对象和512个block对象(至于这些类的具体定义下面会提到),然后将这些对象加入各自对应的对象列表中,在存储时,使用java的对象序列化技术将这个对象数组存到磁盘中。当使用文件系统时,程序会先从磁盘文件中读取出位图数组,inode对象列表,block对象列表,之后的操作就是通过对这些列表进行修改来实现。使用这种方法可以减小存储的空间(对象序列话技术)而且不需要在使用时进行无用的查找,只要第一次初始化中将这些对象都读取出来。        2、界面的实现:在实现这个文件系统时使用了两种方案,一种是直接在java控制台来进行输入输出,因为原本想着UNIX文件系统原本也是使用的命令行语句,所以在控制台上实现也很接近。后来在老师的建议下又将整个程序重新修改,改成在UI界面上进行输入输出,这样确实界面美观舒服了不少,只不过两者用的技术很不一样,前者主要使用的是系统的输入输出流,后者使用java监听器。        3、权限的实现:在实现多用户的权限方面,我给文件和文件夹各定义了三级权限1、访问:在文件中是可以查看文件的内容,在文件夹中是可以进入该文件夹。2、修改:文件中是可以对文件进行编辑,文件夹中是可以在该文件夹中创建新的文件或目录。3、删除:顾名思义。文件或文件夹的创建者拥有最高级别的权限,只有拥有最高级权限的用户才可以给其他用户针对该文件或文件夹进行授权和授权操作。在每次对文件或文件夹进行访问修改删除操作时都会检查当前用户在该文件或文件夹所拥有的权限,只有拥有的权限大于想要实现的权限时才可以进行该操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值