Wednesday, March 28, 2012

Stupid faults in ASST2 of OS161

1. Only call vfs_chdir() in sys_chdir() implementation.

2. Unclear about using vnode in sys___getcwd() implementation such as extract vnode->vn_data as cwd.

Sunday, March 18, 2012

Cloud Computing Paper Reading Summary 9

In the paper Google Cloud Computing Platform Technology Architecture and the Impact of Its Cost, which is published by Jia Xiaojing, the author compares the architecture between Google Cloud Computing platform and traditional IT system.

Data Storage Technology

Core technical indicators: storage reliability, I / O throughput and scalability.

Google developed a distributed file system based on several assumptions:
Hardware failures are the norm.
Supporting large data sets.
Processing mode of write once and read many.
High concurrency.

To ensure reliability of data, Google File System uses a redundant storage means.

GFS's writing operation separates control signal from data flow.

Data Management Technology


Google developed a large-scale database system Big Table with the weak consistency requirements.

Big Table system depends on the underlying structure of the cluster system, which includes a distributed cluster task scheduler, the GFS which has been addressed above, and a distributed lock service Chubby.

Big Table's main server not only manage the metadata but also is responsible to manage remotely and allocate for the Tablet Server.

Programming Model

Map Reduce is not only the programming model that processes and brings about a large data set but also an efficient task scheduling model. (The programmer can finish the distributed parallel program development that specifies the data processing to each block data in the Map function and how to regress the intermediate results of the block data processing in the Reduce function)

Five steps to implement Map Reduce program:
1. input file
2. assign one file to many parallel workers
3. write intermediate file (local writing)
4. reduce workers running
5. output the final result

In Map Reduce model, because data is managed dispersively by each node, there is no separate, centralized database system, and each node can only operate the data managed by it. Consequently it needs the intervention of upper application software to ensure consistency and integrity of across-node data.

The system in the Map Reduce mode increases the map that decomposes the task, the Reduce other processing link about the protocol of results, and parallel processing to support multiple worker node, while need to complete the failure handling about worker node, as well as coordination and communication between the worker nodes and so on.

Cost Analysis of Google Cloud Computing Platform

Due to the distributed data storage and data management, Google reduces the capacity requirements on a single node.

It is easy to achieve standardization of equipment because all nodes are isomorphic.

Google Cloud Computing platform takes hardware failure as the norm and turns to switch automatically between nodes to achieve high availability by means of software fault-tolerant, significantly reducing equipment redundancy.

Based on the unique advantages of parallel computing, Google has developed excellent load balancing technology that enable to ensure business continuity in the means of dynamic load switching in different data centers worldwide.

Conclusion

3 Basic Characteristics of Google Cloud Computing Platform Architecture

1. system built on large-scale clusters of cheap servers
2. build synergies between infrastructure and the upper application (to achieve maximum efficiency in utilization of hardware resources)
3. achieve fault-tolerant nodes through software

Google applies Top-Down design method, namely, from the upper application, the infrastructure is reconstructed based on the operational characteristics about the specific application (rather than the optimization of a general sense)




Cloud Computing Paper Reading Summary 8

In the paper Mobile Cloud Computing as Future For Mobile Applications - Implementation Methods and Challenging Issues published by Shahryar S. Qureshi, etc. Authors pointed out that Cloud Computing is expected to bring an innovation in mobile computing, where the mobile devices can use clouds for data processing, storage and other intensive operations. In the paper, authors introduce state-of-the-art Mobile Cloud Computing and its implementation methods.

Nowadays we use desktop computer and servers tied together to create a so called Cloud Computing System.

Mobile Cloud Computing is defined as extension of Cloud Computing with a new ad-hoc infrastructure based on a mobile device.

Simple viewpoint refers that both data storage and data processing is carried outside the mobile devices. Cloud resources are utilized for processing and storage purpose.

1. The advantage of this concept is that Mobile Cloud Computing applications are not constrained to a certain kind of mobile devices or operation systems.

2. No need to worry for the storage capacity and computation speed limitation.

Mobile device view point refers that both data storage and data processing is that nowadays mobile devices (smart phones, tablets etc) are more intelligent and highly developed.

The advantage of such viewpoint is to provide user an ownership (to store and maintain data on personal mobile device).

Mobile Cloud Computing


The Cloud Computing services in a mobile ecosystems incorporating consumer,  enterprise, femtocells, transcoding, end-to-end security, home gateway and mobile broadband-enabled services.

Mobile Cloud Computing is made up of a complex network and relationships of and in between Infrastructure Providers, Application / Services Providers (ASP), End users and developers and are connected through Internet.

Mobile Cloud Computing exploits user's information such as location, context, accessed services and network intelligence. Also Mobile Cloud Computing can be a solution to the limitations in Cloud Computing such as limited bandwidth capacity and poor network connectivity.

General purpose Mobile Cloud Computing (GPMCC)

Augmented execution for smart phones using clone clouds

Application specific Mobile Cloud Computing (ASMCC)

Mobile service clouds model enables dynamic instantiation, composition, configuration and reconfiguration of services to be used by the mobile user.

Weblets can be exchanged between mobile devices and clouds. Using elastic computing resources provides solution for authentication, secure session management, secure migration between weblets running mobile devices and those on clouds.

RESTful web services are to offload computational capacity, storage and security (of mobile device) to cloud by utilizing the RESTful web services.

Some Potential Barriers and Issues

Barriers

1. Only SaaS has been implemented in Mobile Cloud Computing because of mobile devices ' insufficient storage capacity, battery, poor display and computing power. (Opportunities for PaaS and IaaS)

2. Absence of standards.
Limited scalability, unreliable availability of service and service provider lock-in.

Potential Issues

1. Resource poverty of mobile devices
2. Network bandwidth and latency
3. Network availability and intermittency
4. Security concerns

Future Search 

1. Security issues
2. The mobile cloud architecture for heterogeneous wireless network should be investigated
3. A single access platform is required to establish for MCC on the various operating systems platform (e.g. Android, Symbian, Apple iOS, Chrome, MeeGo, Windows Phone)

Cracking The Coding Interview reading notes 2

At the Interview | Five Algorithm Approaches


Approach 1: Examplify
Approach 2: Pattern Matching
Approach 3: Simplify & Generalize
Approach 4: Base Case and Build
Approach 5: Data Structure Brainstorm


At the Interview | The Offer and Beyond



What about your career option?


Career Path
Promotion Opportunity 
Money and Benefits
Happiness
Brand Name


At the Interview | Top Ten Mistakes Candidates Make



#1 Practicing on a Computer
#2 Not Rehearsing Behavioral Questions
#3 Not Doing a Mock Interview
#4 Trying to Memorize Solutions
#5 Talking Too Much
#6 Talking Too Little
#7 Rushing
#8 Not Debugging 
#9 Sloppy Coding
#10 Giving Up

Thursday, March 15, 2012

Cloud Computing Paper Reading Summary 7

In the paper A QoS-AWARE System for Mobile Cloud Computing published by Peng Zhang and Zheng Yan, authors put forward a QoS framework for Mobile Cloud Computing and an adaptive QoS management process to manage QoS assurance in Mobile Cloud Computing environment, thus their QoS management model is based on Fuzzy Cognitive Map (FCM).

QoS refers to a set of properties including objective ones such as transmission rate, delay variance, packet loss, cost and reputation, and also subjective ones like user experience, trust, privacy concern and satisfaction degree.

Mobile Cloud Computing are often affected by many specific factors like hardware and software limitations of mobile devices, signal strength of mobile networks, mobility of mobile users and so on.

The research work on Cloud Computing falls in various aspects such as Cloud Computing architecture, middle-ware design, cloud services, cloud security and resource management.

In a mobile device, a QoS agent monitors QoS status at run time, for example, percentage of memory and CPU consumption, connection speed, remaining battery percentage and packet loss rate, etc.

The QoS management center aggregates and analyzes the huge set of QoS data, and dynamically adjusts resources to meet QoS requirements of each mobile cloud service.

The QoS management supports context awareness by adaptively selecting a proper set of service modes that can always ensure the quality of cloud services.

FCM specifies the interconnections and influences between nodes. It also permits updating the construction of the graph, such as adding or deleting an interconnection or a node. Thus we can utilize it to predict the performance of cloud service modes in order to select the best one.

The adaptive QoS management system for Mobile Cloud Computing facilities QoS prediction, establishment, assessment and assurance.

Two directions to go ahead:
1. generating a good model with suitable configurations.
2. implementing the solution

Cloud Computing Paper Reading Summary 6

In the paper Review of Mobile Cloud Computing published by Weiguang Song and Xiaolong Su, they summarized both general Cloud Computing and Mobile Cloud Computing.

They pointed out that Cloud Computing is a kind of distributed computing whose main idea is to disperse data process.

They put forward that Mobile Cloud Computing is the combination of mobile computing, mobile internet and Cloud Computing.

Mobile Cloud Computing is to share resources and transport data of computers or other intelligent terminal equipments like cell phones.

Character of Mobile Cloud Computing

1. Hardware of handheld equipment and independence of the system.

2. Effectiveness of task processing.

3. Convenience of sharing data.

4. Elimination of regional limitation.

Mobile Cloud Computing System Architecture: access layer (access control layer), basic managing layer, virtual layer and physical layer.

Problems of Mobile Cloud Computing

1. cell phone platform
2. cloud end system
3. stability of bandwidth
4. input and output interface
5. service provider
6. individualization of handheld equipment
7. loss of battery and network flow

Mobile Cloud Computing Application
1. Android platform
2. MOTOBLUR (proposed by Motorola in Oct 2009 )
3. UCWEB

Cloud Computing Paper Reading Summary 5

In the paper Overview and Analysis of Cloud Computing Research and Application published by Yizeng Chen etc. , authors summarize definition, characteristics, classification and challenges.

They pointed out a definition which has been generally accepted is that Cloud Computing is the developing result of Grid Computing, Distributed Computing, Parallel Computing, Utility Computing, Network Storage technologies, Virtualization, Load Balance etc. traditional computer technology.

There is not too much fresh ideas in this paper, but it reminds me reconsider about the development trend of IaaS, PaaS and SaaS. Move computation processing and storage to the cloud and transfer user client to I/O port in order to reduce users' burden? Or maintain computing and storage in the local? It is a question.