每日训练-day33

day33_0601

选择题

 对进程调度算法中,排队等待时间最长的作业即是最先进入等待队列的作业;
短作业优先算法是根据作业运行时间长短来衡量的;


优先级调度算法分为静态优先权和动态优先权;


响应比高优先算法其实也是一种优先级调度,其优先权权值相当于响应比,响应比等于作业响应时间除以作业要求服务的时间。

 

 读写锁在写加锁状态时,其他进行写操作线程会阻塞.
写锁就是防止其他进程读或写.
读锁就是防止在读的时候有写进程进入

缺页中断调入新页面,肯定要修改页表项和分配页框,所以Ⅰ、Ⅲ可能发生,同时内存没有页面,需要从外存读入,会发生磁盘I/O。
 

 第一段 - 是指文件类型 表示这是个普通文件
第二段 rwx 是指拥有者具有可读可写可执行的权限
第三段 rwx 是指所属于这个组的成员对于这个文件具有,可读可写可执行的权限
类似于windows中的组权限比如administrators组,属于这个组的成员对于文件的都有 可读可写可执行权限
第四段 — 是指其他人对于这个文件没有任何权限

 活跃度失败意思就是调用不到了线程了,那么三种都有可能; 死锁也就是互相等着对方释放资源,结果谁也得不到;活锁可能发生让某一个线程一直处于等待状态,其他线程都可以调用到;饥饿我就感觉用抢占式说好说,每次来就执行优先级高的,那么优先级低的可能永远执行不到。

 a.刚运行就降低,有可能会被抢断

b.已经进入就绪状态

d.长期在就绪也就是等待,再大升高优先级就要饿死了

 对于Ⅰ,当所读文件的数据不在内存时,产生中断(缺页中断),原进程进入阻塞状态,直到所需数据从外存调入内存后,才将该进程唤醒。

对于Ⅱ,read系统调用通过陷入将CPU从用户态切换到核心态,从而获取操作系统提供的服务。

对于Ⅲ,要读一个文件首先要用open系统调用打开该文件。open中的参数包含文件的路径名与文件名,而read只需要使用open返回的文件描述符,并不使用文件名作为参数。read要求用户提供三个输入参数:①文件描述符fd;②buf缓冲区首址;③传送的字节数n。read的功能是试图从fd所指示的文件中读入n个字节的数据,并将它们送至由指针buf所指示的缓冲区中。

已经用完时间片会进入就绪状态,所以不进入阻塞状态

 由于响应比等于等待时间加上服务时间再除以服务时间,所以等待时间相同时,短作业的响应比更大,能优先获得时间片,另一方面,当服务时间相同时,等待时间越长,响应比越大,所以同时照顾了长作业。

 父进程和子进程都有自己独立的地址空间;
父进程结束,所有子进程都结束,进程结束,所有线程都结束;
如果多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,那么就会导致死锁的发生,也就是进程不能实现同步。
多线程和多进程都会引起死锁,一般说的死锁指的是进程间的死锁。

编程

剪花布条

 在s中从第一个字符i=0开始截取t字符串的长度的字符str,然后和t字符串作比较,

等于可以剪出的布条数加一,并且从str后继续判断,知道剩余未判断字符长度小于t的长度;

不等于i++,从下一个字符开始判断;

import java.util.Scanner;
public class Main{
    public static void main(String []args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            String string=sc.nextLine();
            String[] str=string.split(" ");
            int len=str[1].length();
            int count=0;
            for (int i = 0; i <=str[0].length()-len; i++) {
                String s=str[0].substring(i,i+len);
                if(str[1].equals(s)){
                    count++;
                    i=i+len-1;
                }
            }
            System.out.println(count);
        }
    }
}

客似云来

 很明显每天来店里的人数可以构成斐波那契数,

其实就是算某一段的斐波那契数的和;

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        long[] arr=new long[100001];
        arr[0]=1;
        arr[1]=1;
        for(int i=2;i<arr.length;i++){
            arr[i]=arr[i-1]+arr[i-2];
        }
        while(sc.hasNext()){
            int from=sc.nextInt();
            int to=sc.nextInt();
            long count=0;
            for(int i=from-1;i<=to-1;i++){
                count+=arr[i];
            }
            System.out.println(count);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值