Tuesday, 3 December 2013

Google

Brief history of the company

Google Inc. is an American multinational corporation specializing in Internet-related services and products. These include search, cloud computing, software and online advertising technologies. Google began in March 1996 as a research project by Larry Page and Sergey Brin, who were PHD students at Stanford.The first funding for Google was an August 1998 contribution of US$100,000 from Andy Bechtolsheim, co-founder of Sun Microsystems, given before Google was incorporated.

Larry Page
Larry Page CEO and Co-Founder
As Google’s chief executive officer, Larry is responsible for Google’s day-to-day-operations, as well as leading the company’s product development and technology strategy. He co-founded Google with Sergey Brin in 1998 while pursuing a Ph.D. at Stanford University, and was the first CEO until 2001—growing the company to more than 200 employees and profitability. From 2001 to 2011, Larry was president of products.

Sergey Brin
Sergey Brin Co-Founder
Sergey Brin co-founded Google Inc. in 1998. Today, he directs special projects. From 2001 to 2011, Sergey served as president of technology, where he shared responsibility for the company’s day-to-day operations with Larry Page and Eric Schmidt.






    

Services Provided By Google:

·        Search Tools – Google search is a web search engine which is the most popular and famous service. It is also the company’s first creation Google search receives 100 Billion search queries per month and is the most used engine on the internet.

·        Advertising services- Google AdWords offers a contextual advertising solution to web publishers and delivers text based Google AdWord Ads that are relevant to the site content pages. Google Adwords are advertising products which boost website traffic and sales.

·        Development tools-Google App engine is a tool that allows web developers to write and run applications.


There are many other services offered by google such as :

 Communication and publishing tool,  Map-related products and Statistical tools

How does Google Search Work?

Google search starts with the web; it is made up of over 60 trillion individual pages and is constantly growing. Google navigates the web by crawling the internet, the pages are sorted by their content and other factors and Google keeps track of it all in the index. Programs and formulas are written to deliver the best results possible. They look for clues to better understand what you mean. Based on the clues it pulls relevant documents from the index then rank the results using over 200 factors. The results can take a variety of forms and all this happens in 1/8 of a second.



What is Google’s net worth?

Google is worth US$286 billion

How does Google make money?
Most of its profits are derived from AdWords. In other words, Google generates revenue primarily by delivering relevant, cost-effective online advertising.

What is life like working on google ?

What makes working at Google truly unique is the workplace culture that encourages innovation and a healthy disregard for the impossible. They strive to maintain the open culture often associated with startups, in which everyone is a hands-on contributor and feels comfortable sharing ideas and opinions. In their weekly all-hands (“TGIF”) meetings—not to mention over email or in the cafe—Googlers ask questions directly to Larry, Sergey and other executives about any number of company issues. Their offices and cafes are designed to encourage interaction between Googlers within and across teams, and to spark conversation about work as well as play. When not at work, Googlers pursue interests ranging from cycling to beekeeping, from frisbee to foxtrot.

 

Recent Inventions

Google glass- Glass is, simply put, a computer built into the frame of a pair of glasses, and it’s the device that will make augmented reality,that is, a live, direct or indirect, view of a physical, real-world environment whose elements are augmented (or supplemented) by computer-generated sensory input such as sound, video, graphics or GPS data, part of our daily lives. With the half-inch (1.3 cm) display, which comes into focus when you look up and to the right, users will be able to take and share photos, video-chat, check appointments and access maps and the Web.



References:
http://www.google.com.ag/about/company/facts
http://www.investopedia.com/
http://en.wikipedia.org/
http://www.google.com/






Mobili Magazzino



Saturday, 2 November 2013

About Multithreading

Before we go into depth about multithreading, you must first know the definition of a thread.


What is a Thread?

In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by an operating system scheduler. The scheduler itself is a light-weight process. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process. Multiple threads can exist within the same process and share resources such as memory, while different processes do not share these resources. In particular, the threads of a process share the latter's instructions (its code) and its context (the values that its variables reference at any given moment).


Multithreading

Multithreading is a technique by which a single set of code can be used by several processors at different stages of execution. Computer central processing units have hardware support to efficiently execute multiple threadsEach user request for a program or system service (and here a user can also be another program) is kept track of as a thread with a separate identity. As programs work on behalf of the initial request for that thread and are interrupted by other requests, the status of work on behalf of that thread is kept track of until the work is completed. The threads do not share the resources of a single core like multiprocessing systems such as multi-core systems. Multithreading aims to increase utilization of a single core by using thread-level as well as instruction-level parallelism.


The key to utilising multithreading support effectively is to think concurrently rather than serially. For example, when you have two subsystems within a program that can execute concurrently, make them individual threads. With the careful use of multithreading, you can create very efficient programs. A word of caution is in order, however: If you create too many threads, you can actually degrade the performance of your program rather than enhance it.

Take note that some overhead is associated with context switching. If you create too many threads, more CPU time will be spent changing contexts than executing your program.


Advantages of Multithreading 

  • If a thread cannot use all the computing resources of the CPU, running another thread can avoid leaving these idle.
  • Improved performance and concurrency
  • If a thread gets a lot of cache misses, the other thread(s) can continue, taking advantage of the unused computing resources, which thus can lead to faster overall execution, as these resources would have been idle if only a single thread was executed.
  • If several threads work on the same set of data, they can actually share their cache, leading to better cache usage or synchronization on its values.

Disadvantages  of Multithreading

  • Multiple threads can interfere with each other when sharing hardware resources such as caches or translation lookaside buffers (TLBs).
  • Execution times of a single thread are not improved but can be degraded, even when only one thread is executing. This is due to slower frequencies and/or additional pipeline stages that are necessary to accommodate thread-switching hardware.
  • Hardware support for multithreading is more visible to software, thus requiring more changes to both application programs and operating systems than multiprocessing.








http://whatis.techtarget.com/http://www.wikipedia.org/http://docs.oracle.com/cd/E13203_01/tuxedo/tux71/html/pgthr5.htm