1. Interrupts

2. Storage System

3. I/O Structure

4. Server

5. Computing Enviornments

6. User and Operating System Interface

1. Interrupts

1-1) Interrupts

Interrupts는 CPU가 프로그램을 실행하고 있을 때 입출력 하드웨어 등의 장치에

예외상황이 발생하여 처리가 필요할 경우에 프로세서에게 알려 처리할 수 있도록 하는 것을 말함.

1-2) Interrupts Image

Untitled

→ 키보드에서 A라는 Key를 눌렀을 때 키보드에 있는 Controller가 A라는 문자를 눌렀다는 걸

→ CPU에게 Interrupts라는 방법을 통해 알려줄 수 있음.

→ CPU ↔ Process ↔ I/O Device와 통신하는 방법중에 하나가 Interrupts임.

2. Storage System

2-1) Storage System

Storage System은 Storage Capacity(용량)과 Access Time(접근 속도)에 따라

여러 계층으로 나눌 수 있음.

2-2) Storage System Image

→ 가장 빠른 건 CPU 안에 있는 'Registers'임.

→ Ram이 빠르긴 하지만 그 다음에는 'Cache Memory'가 있음.

→ Cache가 Ram보다 훨씬 빠르지만 비싸기 때문에 용량을 크게 할 수 없음.

→ Main Memory가 흔히 말하는 'Ram'임.

→ 'SSD'는 메모리형태의 Hard Disk 역할을 함.

→ Hard Disk(자기장)을 이용함.

→ Optical Disk

Untitled

→ Magnetic Tapes

Untitled

Untitled

3. I/O Structure

3-1) I/O Structure Image

Untitled

4. Server

4-1) Server와 Client

맛집 앱을 담당하는 컴퓨터가 있다고 가정하면 그게 서버가 됨.

이 컴퓨터는 그 앱이 깔린 폰들에 맛집들의 정보를 전송해줌.

폰들에게 서비스를 제공하니까 그게 서버인 거임.

클라이언트(맛집 앱 사용자) -> 서버(폰들에게 서비스를 하는 제공자)

4-2) Server와 Client Image

Untitled

4-3) 특정 지역의 지리 정보가 필요할 때????

폰들에게 서비스를 제공하는 컴퓨터는 여기서 서버가 아니라 클라이언트가 됨.

지리 정보를 제공하는 컴퓨터가 서버가 됨.

4-4) Web Application Server(Client)와 Client와 Local Information Server Image

Untitled

4-5) Internet Data Center(구현 서버)

4-5)-1. On-premise

보통 IDC, 인터넷 데이터 센터란 시설에 있음.

냉각 장치와 함께 수많은 컴퓨터들이 쫘라락 박혀서

인터넷에 연결되어 있는 거임.

대부분은 서버용으로 특수제작된 기기들이지만

외부에서 특정 주소로 접속해올 수 있도록 설정하면(어렵겠지만)

보통은 IDC에 있는 특정 컴퓨터를 사용하거나

AWS같은 클라우드 컴퓨팅 서비스를 사용함.

4-5)-2. On-premise Image

Untitled

→ 온-프레미스 서버일 경우 파일들을 그리로 보낸 다음 AWS의 기능들과 연동하거나

→ Heroke에 바로 올릴 수도 있음. 서버 설정할 필요 없이 코드만 커밋하면 알아서

→ 웹사이트 API든 실행해주는 서비스 PasS로.

5. Computing Enviornment

5-1) Mobile Computing

데이터, 음성, 동영상의 전송을 가능케 하는 평상시 컴퓨터 사용 중 전송을 염두에 둔

인간 -컴퓨터 상호작용임. 모바일 컴퓨팅은 모바일 통신, 모바일 하드웨어, 모바일 소프트웨어를 수반 함.

5-2) Client-Server Computing

5-2)-1. Client-Server Computing

서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해주는

분산 애플리케이션 구조이자 네트워크 아키텍처를 나타냄.

5-2)-2. Client-Server Computing Image(Click, 인터넷 통신 예제)

Untitled

5-3) Peer-to-Peer Computing

5-3)-1. Peer-to-Peer Computing

P2P는 비교적 소수의 서버에 집중하기보다는 망구성에 참여하는 기계들의 계산과

대역폭 성능에 의존하여 구성되는 통신망이다. P2P 통신망은 일반적으로 노드들을 규모가

큰 애드혹으로 서로 연결하는 경우 이용됨. 이런 통신망은 여러 가지 쓸모가 있는데,

오디오나 비디오 데이터 등 임의 디지털 형식 파일의 공유는 매우 보편적임.

5-3)-2. Peer-to-Peer Computing Image

Untitled

5-4) Cloud Computing

5-4)-1. Cloud Computing

자사의 거대한 데이터센터에 서로 연결된 수많은 컴퓨터들을 운용하고 있음.

다만, 온-프레미스 방식처럼 사용자에게 컴퓨터를 하나씩 통째로 배당하는 게 아니라

필요한만큼 떼어서 나눠줌.

가상 컴퓨팅이란? 기술을 사용하면 물리적 컴퓨터 한 대에 가상의 컴퓨터 여러 대를 띄울 수 있음.

예를 들면 페러럴즈. 같은 걸로 맥에 윈도를 띄우는 것처럼 그게 가상 컴퓨팅임.

컴퓨터의 물리적 자원을 필요에 따라 분할해서 쓸 수가 있음.

5-4)-2. Cloud Computing Image

Untitled

5-4)-3. 클라우드는 어떤 좋은 선택을 할 수 있을까????

세일 시즌이나 이벤트 기간에 유난히 접속량이 폭주하는 앱의 경우 클라우드에서

그때그때 필요한 만큼자원을 늘려주거나 줄여줄 수 있음.

시간과 접속량에 따른 종량제로 운영 돼서 필요한만큼만 돈을 지불하면 됨.

여기서 돈을 더 지불하면 데이터베이스, 자료백업, 스토리지, 자동화, 머신러닝, 심지어 블록체인까지

검증된 최고급 프로그래머들이 구현해놓은 걸 서비스로 이용할 수 있음.

5-5) 클라우드 컴퓨팅 서비스의 세 단계

Untitled

5-5)-1. 하드웨어 IaaS : 서버만 관리

가상 컴퓨터, 즉 하드웨어 자원의 일부를 떼어주는 거임.

클라우드에서는 거의 하드웨어만 관리하고 내가 직접 가상 서버 하나를

본체 사서 윈도 깔고 드라이버 다운받고 프로그램 깔고 하듯이

운영 관리한다고 생각하면 됨.

5-5)-2. PaaS : 배포

가상 컴퓨터도 내가 신경 쓸 필요 없이 클라우드에서 관리해줌.

개발자는 소프트웨어만 만들어 올리면 되는 거임.

내가 짠 코드를 압축해서 업로드하거나 깃으로 전송하면

클라우드에서 알아서 서버에 넣고 돌려줌. 배포라고 보면 됨.

5-5)-3. SaaS : 바로 온라인으로 이용할 수 있는

아예 다 만들어진 소프트웨어를 서비스로 제공함.

에너노트, 드랍박스, 구글닥스, 온라인 페이, SNS, 이메일

사용자들이 바로 온라인으로 이용할 수 있는 서비스들은 SaaS라고 보면 됨.

5-6) Real-Time Operating System(RTOS)

RTOS는 실시간 응용 프로그램을 위해 개발된 운영체제임. 운영체제의 기능 중

CPU 시간 관리 부분에 초점을 맞추어 설계되었음. 실시간 운영 체제는 프로그래머가