Distributed Systems (COMP90015_2020_SM1) 複習

Distributed Systems (COMP90015_2020_SM1)

該博客只限於該課程的複習,我只是在這裏記錄框架,並非全部內容。

1. introduction

1.1 define

1.2 computer network && ds

1.3 reason--6

  • economy
  • resource sharing
  • functional separation
  • reliability
  • availability
  • scalability

1.4 characteritics 5 

  • no global state
  • no global clock
  • resource sharing
  • communicaiton via message passing
  • parallel activities

1.5 goals 5

  • connecing users and resources
  • transparncy
  • openness
  • scalability
  • enhanced availability

1.6 consequences 4

  • concurrency
  • heterogeneity
  • no global clock
  • independent failures

1.7 challenges

  • secruity
  • openness
  • concurrency
  • transparency
  • scalability
  • heteogeneity
  • fault tolerance

 

2. inter-process communication

2.1 layer - image

  • physical layer --> internet layer --> transport layer -->application layer

2.2 TCP   -- image

  • define: reliable / connection-oriented communicaiton 
  • applicaiton: http/ftp/skype
  •  data flows

2.3 UDP --image

  • define: connectionless communicaiton / no guarantees order 

  • applicaiotn :broadcasting / ping

  • failure : order / omission failure / data corruption

2.4 port 

  • positive 16-bit int
  • post number >=1024
  • Tcp / udp map data 

2.5 socket

  • programme:client / server :udp+tcp
  • define / introduction :language indepent  && interface for programming 

 

3. thread

3.1 middleware 

  • define:layer between applicaiton / operting system

3.2 middleware / network operating system

3.3 threaded appliaiton

  • multitasking / multithreading / bottom line

3.4 thread

  • implement : thread class / runnable interface (program)
  • define: a piece of code
  • 生命週期 -- image
  • priority : set / get :3 types

3.5 architecture

  • worker pool -- image
  • thread -per - request
  • thread - per - connection 
  • thread - per - objects

3.6 thread && process

  • process-based:controlled by os
  • thread-based:controlled by programmer and applicaiton program
  • adv for thread:
  1. share address space
  2. communicaiton inexpensive
  3. context swithcing inexpensive

 

4. ds models

4.1 . models 

  • fundamental models / architectural models / physical model

4.2 fundamental models 

  • intercation / failure / security model

4.3 architectural modesl

  • clients and a single server
  • multiple servers
  • proxy servers with cache
  • p2p

4.4 alternative client-server models

  • mobile code 
  • mobile agents
  • network computers
  • thin clients
  • mobile devices
  • spontaneous networking

 

 

 

5.Operating System Architecture

5.1 NOS && DOS

  • nos(3) 
  • dos(4)

5.2 core OS components

  • processing manager
  • thread manager
  • memory model
  • communication manager
  • supervisor

5.3 supervisor && user model

5.4  popular kernel implementation methods

  • Monolithic && Microkernel區別  -- image / advan / disadvan
  • monolithic os : high performance + difficult to enhance
  • layered  os :easy to enhance / low performance
  • Micro-kernel

5.5 json && xml

  • easy program
  • parser
  • shorter string -- improve performance

 

6. Remote Invocation

6.1  3 types of protocols

  • request
  • request-reply (3 issue:timeout(client+server)  & duplicate requests 
  • request - repley - acknowledgement

6.2 3 invocation semantics

  • maybe 0/1
  • at - least -once RPC : at least 1 time  &  idempotent operation
  • at - most - once RMI : only once & non-idempotent operations.

6.3 RMI

  • how to build---  image (processing)
  • architecture and compoents -- image
  1. remote reference module
  2. proxy
  3. communication model
  4. dispatcher
  5. skeleron
  • describe:4 part:interface / implement / server / client 
  • programming :code
  1. server : interface  / implement / main -- register & rebind
  2. client :  lookup
  3. security : eg:hellopoicy
  • security manger -- implement

6.4 RPC

  • define
  • 4 compoents -- image
  1. communication model 
  2. client stub procedure
  3. server stub procedure
  4. dispatcher

 

7. security

7.1 threats 3 

  • leakage
  • tampering 
  • vandalism  

7.2 attack 5

  • Eavesdropping (leakage)
  • Masquerading
  • Message tampering
  • Replaying
  • Denial of service ( Vandalism)

7.3 worst-case assumptions (main4)

  • interface are exposed
  • networks are insecure
  • node and algorithms are available to hackers
  • attackers have large resources
  • minimise the trusted base
  • limit the lifetime and scope of each secret

7.4 encryption

  • define
  • shared secret keys :
  1. define :use the same keys (kab)
  2. process--image : 2 steps : send(kab)+get(kab)
  3. drawbackes : key distributions / freshness of communicaiton
  • public/private key pair
  1. define: 2 keys(kpub + kpriv)
  2. drawbacks: more computations
  3. process : step3 -- image (get kpub --> creat kab --> get message(use kprivate))

7.5 applicaiton (major roles) encryotion 

  • secrecy and integrity
  • authenticaiton
  • digitial signatures

7.6 PKI

  • define
  • goals
  • certificaite(X.509)

7.7 certificates

7.8 kerberos && ssl

  • 7.8.1 kerberos
  1. system architecture: step 3 -- image
  2. drawbacks: expensive to apply ( cannot multiple users && mounted all files)
  • 7.8.2 ssl(tls)
  1. two layers: handshake layer / tcl record protocol layer ( detail -- image)

 

8. Distributed file systems

8.1  issue

  • recovery (after failure)
  • high throughput ( reading and writing)
  • scalability
  • consistency
  • cilent caching --> performance

8.2 transparencies

  • access
  • location
  • mobility
  • performance
  • scaling 

8.3 file service architecture

  • define :副本緩存在本地
  • compoents:
  1. a flat file service :operations
  2. a directory service:mapping -- ufids
  3. a client module :intefrated services
  • architecture -- image

8.4 DFS (NFS)

  • architecture -- image
  • operariton -- functions(client/server) -programme
  • NFS valid / invalid
  1. valid : time ( fresh enough)  or (last modified recorded by the client and the server match)

8.4 cache / memory 

  • disk : adv: safer dis:slower need a disk
  • memory : adv: quick dis: limited cache size / not tolerate node failure well

8.5 write-through client cache update ( good / bad)

  • define: write are propagated to the server, server's copy updated immediately
  • adv: high reliability 
  • dis 
  1. reduced performance ( transmitted over the network)
  2. no benefit for write requests ,but good for reads

8.6 absolute name(good / bad)

  • define: a complete address : both server and path
  • adv:
  1. easy to find
  2. no additional state
  3. greater scalability
  4. eaty to add and delete
  • dis:
  1. no location transparency
  2. file cannot be moved
  3. less resilient to failure

8.7 a global name (good / bad)

  • define:
  • adv:
  • location transparency
  1. name consistent across all clients
  2. can move
  • dis :
  1. cilent(cached) -- difficult to consistent
  2. performance problems

8.8 mount point (good / bad )

 

9. name services

9.1 URL

  • define:
  • different : URI/URL/URN 

9.2 name services

  • define: consistent and uniform naming of resources
  • important (why) 3 
  1. recource localizations
  2. uniform naming
  3. device independent address
  • role

9.3 process of name resolution

  • interative process (get attributes or name)
  • never terminate(solution:abandon / no cycles occur)

9.4 navigation

  • define: (art of chaining multiple naming services && resolve name to resource)
  • approaches : iterative / recursive / non-recursive  -image

9.5 DNS

  • define : a name service design
  • functions: resolve the name(main)
  • issus(2)
  • hierarchical organizaiton
  • example -- image
  • diffierent with file-based : scale / privacy / speed)

9.6 directory services

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章