HW1

HW1 (Due by 10/16 23:59) 프린트는 수업시간에 제출
1. Thread vs SharedMemory test report
-적어도 2~3개의 다른 컴퓨터(윈도우,리눅스)에서 실행해서 테스트해본다.
-코드 분석 및 실행 결과 리포트 2~3장

2. Multithread file copy
-하나의 디렉토리(fromDir)의 모든 파일(*.*)을 다른 디렉토리(toDir)로 복사
+디렉토리 안에 파일 하나마다 하나씩 쓰레드 생성하여 파일 복사
+예시 C:/JAVA 안에 있는 모든 파일을 C:/JAVA2로 복사
+Thread1은 C:/JAVA/1.jpg -> C:/JAVA2/1.jpg로 복사
+Thread2은 C:/JAVA/2.jpg -> C:/JAVA2/2.jpg로 복사
+Thread3은 C:/JAVA/3.jpg -> C:/JAVA2/3.jpg로 복사

-cpp 와 java 버전 (Windows와 Linux)으로 작성
+JAVA는 Files 유틸리티 클래스의 copy 메소드 사용
+C/C++은 FileCopy 클래스(이러닝에 제공)의 copy 함수 사용

-코드 분석 및 실행 결과 리포트 2~3장

ToastCloud Linux VM

ToastCloud Linux VM

    1. Download putty.exe & pscp.exe (64-bit)
      https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
    2. Connect to your linux VM(ubuntu v.16.04) using putty.exe (SSH your_ip_addr port 22)
      Connection->Data->Auto-login username: ubuntu (login)
      Connection->SSH->Auth->Private key file for authentication: DDS_lecture.ppk (use key)
    3. File transfer from PC to Linux VM using pscp.exe
      E.g.) pscp.exe -i “C:\Users\park\Desktop\03_DDS_Lecture\DDS_Lecture.ppk” C:\Users\park\Desktop\test.tar ubuntu@:/home/ubuntu
    4. File transfer from Linux VM to PC using pscp.exe
      E.g.) pscp.exe -i “C:\Users\park\Desktop\03_DDS_Lecture\DDS_Lecture.ppk” ubuntu@:/home/ubuntu/test/hello.tar .
    5. File transfer using FileZilla Client for Windows (64-bit)
      https://filezilla-project.org/download.php?platform=win64
      Protocol: SFTP
      Logon Type: Key file
      User: ubuntu
      Key file: DDS_lecture.ppk
    6. File zip/unzip | tar cvf/xvf on Linux
      zip -r test.zip test // <- test 디렉토리를 test.zip으로 압축
      unzip test.zip // <- test.zip를 압축해제
      tar cvf test.tar test // <- test 디렉토리를 test.tar로 압축
      tar xvf test.tar
    7. // <- test.tar를 압축해제

Oracle Virtual Box https://www.virtualbox.org/
 

Big Endian vs Little Endian

http://www.packetinside.com/2010/10/%EB%A6%AC%ED%8B%80%EC%97%94%EB%94%94%EC%95%88little-endian%EA%B3%BC-%EB%B9%85%EC%97%94%EB%94%94%EC%95%88big-endian%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0.html

[Little Endian System]
[Big Endian System]
  • AIX on POWER
  • AmigaOS on PowerPC and 680×0
  • HP-UX on Itanium and PA-RISC
  • Linux on MIPS, SPARC, PA-RISC, POWER, PowerPC, 680×0, ESA/390, and z/Architecture
  • Mac OS on PowerPC and 680×0
  • Mac OS X on PowerPC
  • MVS and DOS/VSE on ESA/390, and z/VSE and z/OS on z/Architecture
  • Solaris on SPARC

https://genesis8.tistory.com/37

https://instacalc.com/1067

Challenges of a Distributed System

  • Heterogeneity – applies to networks computer hardware; operating systems; programming languages; implementations by different developers
  • Openness – interfaces should be publicly available to ease inclusion of new components
    Security – confidentiality(protection against disclosure to unauthorized users), integrity(protection against alteration or corruption), availability(protection against interference with the means to access the resources)
  • Scalability – System should work efficiently with an increasing number of users; System performance should increase with inclusion of additional resources
  • Failure handling – detecting failures, masking failure (hidden or made less severe), recovery from failure, redundancy
  • Concurrency – Several clients will attempt to access a shared resource at the same time, producing inconsistent results
  • Transparency
    • access transparency(enables local and remote information objects to be accessed using identical operations)
    • location transparency(enables information objects to be accessed without knowledge of their physical or network location)
    • name transparency(incorporates a global naming scheme)
    • concurrent transparency (enables several processes to operate concurrently using shared information objects without interference between them)
    • replication transparency(enables multiple instances of information objects to be used to increase reliability and performance without knowledge of the replicas by users or application programmers)
    • migration transparency(allows the movement of resources and clients within a system without affecting the operation of users or programs)
    • failure transparency(enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components)
    • performance transparency(allows the system to be reconfigured to improve performance as loads vary)
    • scaling transparency (allows the system and applications to expand in scale without change to the system structure or the application algorithms)
  • Quality of Service (QoS) – ability to meet service requirements for applications

Openness

Openness (개방성) – offers services according to standard rules that describe the syntax and semantics of those services. Such rules are formalized in protocols. 서로 상이한 요소 간에 interoperability (호환성), portability (이식성) 및 scalability (확장성)이 가능하도록 함

Interoperability (호환성) – characterizes to the extent by which two implementations of systems or components from different manufacturers can co-exist and work together by merely relying on each other’s services as specified by a common standard.

Portability (이식성) – characterizes to what extent an application developed for a distributed system A can be executed without modification on a different distributed system B that implements the same interfaces as A.

Scalability (확장성) – easy to add new components or replace existing ones without affecting those components that stay in place.