close

● 設定每個文件的權限 ( 模仿UNIX Sys ) : Owner rwx / Group rwx / Others rwx

● 功能要求:

第一部分:

1. 建立一個 server 管理及保存 clients 的檔案

2. 有三個 groups ,分別叫  AOS_group”, “CSE_group”, 和“other_group“,每個 group 中至少兩個 clients

3. clients 可以下載或上傳檔案

4. 當 clients 要求對檔案做不符合權限的操作時,server 必須禁止並且顯示錯誤訊息說明理由

5. 每個 clients 都可動態新增檔案,clients可操作的指令有以下:  


1) new homework2.c rwr-r

client 新增一個檔案到 server 上


2) read homework2.c

client 從 server 下載檔案


3) write homework2.c o/a

client 上傳一個存在的檔案,第三個位置可填o(覆寫相同檔名之檔案)或者a(將資料接在相同黨名之檔案元原資料後)


4) change homework2.c rw----

client 修改檔案權限,若修改權限的行為發生在有其他人正在操作此檔案時,操作的權限依循未修改前檔案權限,也就是說操作檔         案的權限是依循開始操作當下檔案權限,操作中途變更的權限不理會 


5) information homework2.c

顯示檔案描述訊息 (permissions, creator, group, file size, datecreated, and filename)

例: 

 一個完整的文件描述,如: -rw-r----- Ken ASO 29334 Nov 21 2018 homework2.c

- (Owner) rwx (Group) rwx ( Others) rwx   擁有者(創建文件者)  群組名稱   文件大小(Bytes)  月 日 年  文件名稱.副檔名

 擁有者可允許其他人加入群組

 

6. 注意: 所有 clients 的操作都在 server 的同一個資料夾中,server 必須使用 Capability Lists 去管理檔案權限 (只有server需要創建),   必須告訴助教在每個指令下 server 的 Capability Lists 如何轉變

7. 讀寫的同步處理: 

1) 當有 client 正在 write 檔案時,其他 client 不可write (server 顯示錯誤訊息)

2) 當有 client read 時,不可有其他 client write

3) 可多個 clients 同時 read

第二部分: 

1. demo 第一部分中的所有要求給助教看

2. server 必須可以許多個 clients 連接,並且可多個 clients concurrently(平行) 讀寫檔案 (提示: 因此檔案需要大一點,才能明顯地給助教顯示出此項功能)

3. 鼓勵使用 multiply threads 或是 fork() 來實作此次作業 ( 阿如果想要用多電腦實作當然更好 )


作業要求: 

1. 使用  standard C socket library in UNIX-compatible systems

2. 提供 Makefile ( 如果makefile不正確,助教會扣分)

3. 記得去 demo,否則 0 分

打分標準: 

1. 不需繳交報告

2. 第一部分60% 第二部分 40%

3. 加分:  if you can adopt multiple processes/threads on the server side, or you have special design in the homework

繳交期限: 2018/12/20

 

 

http://urban-computing.com/pdf/CIKM2018deepcrime.pdf

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arrow
arrow
    文章標籤
    Capability List Distributed AOS
    全站熱搜
    創作者介紹
    創作者 KR 的頭像
    KR

    漫漫長路

    KR 發表在 痞客邦 留言(0) 人氣()