复试面试专业课-java语言-c语言-操作系统

面向对象的三个特性:

1)封装:将事物抽象成类,每个类都有自己的数据和方法,封装可以使代码模块化, 目的是为了代码重用。

2)继承:子类继承父类的方法和属性,继承科可以扩展已存在的代码,目的是为了代码重用。

3)多态:一般使用接口和方法重写来实现,一个接口多个方法。


java语言特性:

1)跨平台性:java可以在不同平台上运行,只需要编写一次,通过JVM在各个平台执行。

2)面向对象:java是面向对象语言,支持继承、多态和封装。

3)自动内存管理:java使用垃圾回收机制,自动管理内存。

4)强类型语言:变量在使用前必须声明类型,并进行类型检查。

5)多线程支持:java内置对多线程的支持,使并发编程相对容易

6)java是完全面向对象的语言,所有方法和数据必须是类的一部分

7)不支持多重继承,即一个子类不能有多个父类。


c语言特性:

1)c语言是面向过程的抽象化的通用程序设计语言。

2)允许直接访问物理地址,并能进行位操作,因此执行效率高。

3)库函数丰富

4)不支持自动内存管理


面向对象和面向过程:

面向对象是以对象为中心的编程思想,以消息进行驱动。

面向过程是以过程为中心的编程思想,以算法为驱动。

面向对象是对象加消息,面向过程是算法加数据


什么是OS?

操作系统是计算机资源的管理者


OS的作用?

处理机管理(进程控制、进程同步、进程通信、死锁处理、处理机调度)

存储器管理(提高内存利用率、内存的分配与回收、地址映射、内存保护与共享、内存扩充)

文件管理

设备管理


进程是什么?

进程是程序的运行过程,是系统进行资源分配和调度的一个独立单位


线程是什么?

线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,一条线程指的是进程中一个单一顺序的控制流,每条线程执行不同的任务。

例如,当微信运行时,它可能包含多个线程,如聊天线程、好友视频线程和下载文件线程等。


进程和线程的区别?

进程是系统进行资源分配和调度的基本单位,线程是CPU调度和分派的基本单位

线程依赖进程存在,一个进程至少有一个线程

线程包含在进程之中


进程和程序的区别?

程序是永存的,进程是暂时的,是程序在数据集上的一次执行

程序是静态的观念,进程是动态的观念

进程具有并发性,程序没有

进程是计算机资源的基本单位,程序不是

进程和程序不是一一对应的,一个程序可以对应多个多个进程


什么是死锁,死锁的原因?

两个或两个以上进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果没有外力作用,将永远这样僵持下去。

原因:系统资源不足或进程推进顺序不当,比如a有1申请2,b有2申请1


如何处理死锁?(了解银行家算法)

预防死锁:通过设置限定条件破坏产生死锁的四个必要条件之一

避免死锁:在资源动态分配的过程中,用某种方法防止系统进入不安全状态

检测死锁:允许系统在运行过程中发生死锁,但可通过死锁设置的检测机构,及时检测死锁的发生,例如银行家算法

解除死锁:当发生死锁时,常用撤销或者挂起一些进程,回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转变为就绪状态

银行家算法:每次分配资源时,首先检查系统是否有足够的资源满足要求,如果有,则先试行分配,并检查安全性,如果安全,正式分配否则拒绝分配。


进程的调度算法有哪些?

先来先服务、最短作业优先、优先级调度算法、时间片轮转、最高相应比优先、多级反馈队列调度算法。

相应比=1+等待时间/处理时间


页面置换算法?

先进先出

最近最久未使用LRU

最不经常使用LFU


磁盘调度算法?

先来先服务

最短寻道时间优先算法

扫描算法电梯调度-自里向外再自外向内

循环扫描算法-只自内向外

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值