After viewing much of the ppt online, I grabbed that most of the US schools focus on practice. Maybe because the ppt is for Microsoft intern. Actually, the Sun and the Andrew has been the history.
First off, many kinds. and all of them is to make online repositories browsed just as offline. like ftp on linux r samba on windows.
basic Architechture
The architecture is the webserver one that is response and response. I'd say it's more r less a application layer thing, all the mapping connects to other api. In ufid part, it's stateless and a server end fd.
Implementation
The connection contract is based on RPC which requires:
This is the remote procedure call interface to extend the local directory services to a distributed model.
Every operations would not be directly modified, all requires a tcp requiest, so the identifier requires a 32bits and 16bits date for time stamp. After being transfered, all operations are similar to local ones. Take Sun NFS systems as instance.
NFS & VFS
VFS do it more direct, I would say. It put the Hardware abstraction more abstract based on network architechture. Vnode rather than Inode( a file saving DS). In pintos is like:
Source: CSCI350: pintos guide
while VFS works this way
Summary
Other OS operations works just do as the file system based on network.
optimization: UDP packet is extended to 9KB to containing entire file block (8KB for UNIX BSD FFS) and RPC message in a single packet – Clients and servers of NFSv3 can negotiate sizes larger than 8 KB.
Another file systrm : Andrew File System
The Andrew File System (AFS)[1] is a distributed file system which uses a set of trusted servers to present a homogeneous, location-transparent file name space to all the client workstations. It was developed by Carnegie Mellon University as part of the Andrew Project.
Goal: provide transparent access to remote shared files
pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-none -a args-none -- -q -f run args-none
pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-single -a args-single -- -q -f run 'args-single onearg'
pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-multiple -a args-multiple -- -q -f run 'args-multiple some arguments for you!'
pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-many -a args-many -- -q -f run 'args-many a b c d e f g h i j k l m n o p q r s t u v'
pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-dbl-space -a args-dbl-space -- -q -f run 'args-dbl-space two spaces!'
#include <stdio.h>
int main(void)
{
char my_string[] = "XSCI350";
printf("Original: %s\n", my_string);
//ptr points to the start of the string
char* ptr = my_string;
//memset(void pointer to data to modify, write data, size of data in bytes)
memset(static_cast<void*>(ptr), ’C’, sizeof(char)); printf("After: %s\n", my_string);
return 0;
}
#include <stdio.h>
int main(void)
{
char my_string[] = "ABCD123";
printf("Original: %s\n", my_string); //ptr points to the start of the string
char* ptr = my_string;
//memcpy(void pointer to data to modify, write data, size of data in bytes)
memset(static_cast<void*>(ptr), ’CSCI350’, sizeof(char) * 7);
printf("After: %s\n", my_string);
return 0;
}
在进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性的断言两者孰优孰劣。此时如果一定要进行比较,则比较合理的判断依据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve),如图1图2所示。
看到这里,是不是很疑惑,根据AUC定义和计算方法,怎么和预测的正例排在负例前面的概率扯上联系呢?如果从定义和计算方法来理解AUC的含义,比较困难,实际上AUC和Mann-WhitneyU test(曼-慧特尼U检验)有密切的联系。从Mann-Whitney U statistic的角度来解释,AUC就是从所有正样本中随机选择一个样本,从所有负样本中随机选择一个样本,然后根据你的学习器对两个随机样本进行预测,把正样本预测为正例的概率,把负样本预测为正例的概率,>的概率就等于AUC。所以AUC反映的是分类器对样本的排序能力。根据这个解释,如果我们完全随机的对样本分类,那么AUC应该接近0.5。
首先是预测,cpu需要通过既有个个进程的资源占用率来预测未来分配,以减少不当分派带来的 fairness between threads & security maliciousness 。同时,有些线程( OS 上多了)或程序跑到某一时间段后从安全态到了非安全态或切换状态的时候会影响调度结果,所以 CPU scheduler 也会预测各个分支。现在工业界主要的方法是启发式的预测方法,这比 OS 课上习得的 FCFS、SJF、SRFS 以及古老的RR要性能好。
文章中提到了一个幽灵漏洞的 naïve version 的攻击方式,叫 speculative execution attacks 。假设 Cache will point to the place in drive (这里的 Cache 上不一定存数据,可能是映射到另外一个地址空间),那就提出一个新的 cache 区域作为 buffer ,经过 LLC 后放在 Cache 上。读入一遍后,只要看速度就能得出漏洞可能存在的位置。
int epoll_create(int size);
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);