<프로그램에 의한 입출력(Programmed I/O)>


CPU는 입력을 지시한 후 한 워드가 컨트롤러의 버퍼에 입력됐는지를 계속해서 확인하도록 하는 방식. 입력의 완료를 알리기 위해 인터럽트라는 수단이 필요 없는 대신 CPU가 지속적으로 완료의 여부를 확인해야하므로 CPU가 다른 작업에 동원되지 못해 낭비가 발생한다.


1. CPUI/O모듈에게 입출력장치의 상태를 검사하도록 요청

2. CPU는 입출력여부를 계속적으로 확인

3. 입출력 장치가 준비 상태라면, CPU가 데이터 전송을 요청

4. I/O모듈이 입출력 장치로부터 데이터를 수신

5. I/O모듈이 CPU에게 데이터를 보내줌

6. CPU는 입출력 모듈에 출력 명령을 레지스터에 기록하여 출력 동작을 수행하도록 함

<인터럽트에 의한 입출력(Interrupt-driven I/O)>

입력을 지시한 후 한 워드의 입력이 이루어지는 사이에 CPU는 다른 작업에 활용되어 지며 입력의 완료 시 인터럽트를 통해 CPU에 알려지는 방식

1. CPUI/O모듈로 읽기 명령을 보냄

2. I/O모듈은 주변장치에서 데이터를 읽는 과정동안 CPU는 다른 일을 수행 (CPUI/O모듈에게 권한을 줘서 I/O모듈이 뭐하는지 신경을 안씀)

3. I/O모듈이 주변장치로부터 데이터를 모두 받으면 CPU로 인터럽트 신호를 보냄

4. CPU가 입력된 데이터를 요구하고 I/O모듈이 CPU에게 데이터를 전송




<메모리에 직접 접근하는 입출력(Direct Memory Access, DMA)>

CPU는 입출력할 데이터의 시작주소와 크기 등을 채널에게 알려주고 다른 작업에 동원되어지며, 이때부터 입출력은 채널의 주도하에 이루어짐

채널은 CPU로부터 버스승인을 받고 사용하지 않으면 채널이 버스를 사용함 (CPU개입 없이 채널이 메모리에 데이터를 읽거나 씀)

시스템에서 한 번의 입출력 단위를 블록(Block)라고 부르는데 전송이 완료되면 채널은 블록 단위로 CPU에게 인터럽트를 보내 처리

<독립적인 입출력(I/O mapped I/O)>

입출력 장치들이 입출력 버스(I/O Bus)를 통해 CPU와 연결되어 있는 경우이며 메모리는 따로 메모리 버스를 통해 연결

입출력은 입출력을 담당하는 명령어를 통해 실행되는데, 입출력 버스를 통해 해당 장치의 지정, 데이터, 입출력을 구분해 주는 제어(Control) 값이 전달

 


<메모리 주소지정 입출력(Memory-mapped I/O)>

입출력 장치들이 메모리와 함께 메모리 버스에 연결되어 있으며, 입출력을 위한 명령어를 따로 두어 사용하지 않고 메모리에 대한 명령어(MOVE, LOAD)등을 사용하여 실제 입출력을 하게 되는 방식. 주소공간만큼의 메모리를 활용할 수 없다는 단점이 있다.

 



Copyright2014 By 휴먼사이언스

LIST

'Web Programming > Theory' 카테고리의 다른 글

Web? Web Server? Web Client? Web Browser?  (1) 2016.03.04
Internet? web? 그리고 History...  (0) 2016.03.03
웹 동작원리와 URL 구성요소  (0) 2016.02.04

<네트워크>

서로간의 통신을 위해 두 개 이상의 장치들이 연결되어 있는 통신 구조이다.

만약, 집 안에 두대 이상의 컴퓨터가 연결되어 있다면 그 것 또한 하나의 네트워크가 될 수 있다. 

 

<인터넷>
수많은 컴퓨터 네트워크들을 연결시키는 네트워크이다.
네트워크와 네트워크를 연결되어 있는 것을 인터넷이라 한다.

 

<World Wide Web>

인터넷 서비스의 한 종류이다. FTP, TELNET과 같은 서비스의 일종이다.

WWW를 도식화하여 보여준다면 아래의 그림과 같다.



클라이언트가 Web브라우저를 통해 HTML문서를 요청하게 되면 웹서버는 클라이언트가 요청한 HTML문서를 찾아서 클라이언트에게 보내주는 방식이다.

 

<하이퍼링크>

하이퍼링크는 특정 단어나 이미지를 다른 문서와 연결하는 것이다.



먼저, 클라이언트가 하이퍼링크를 클릭하면 HTML 문서를 해당 웹서버로 요청한다. 그 요청을 받은 웹서버는 HTML문서를 찾아서 클라이언트에게 응답해준다. 클라이언트는 웹 브라우저를 통해 받은 HTML문서를 볼 수 있는 것이다.

 

 

<웹 서버(Web Server)>

클라이언트의 요청을 받아서 처리한 후 결과를 클라이언트에 전송해 주는 주체(서비스를 해주는 것)

 

<웹 클라이언트(Web Client)>

필요한 데이터를 웹 서버에 요청하는 주체(서비스를 받는 것)

 

<웹 브라우저(Web Browser)>

웹 서버로부터 받은 HTML 문서를 해석하고 보여주는 애플리케이션

예) Internet Explorer, Netscape Browser, Mozilla Firefox

 

 

 

 


 Copyrightⓒ2014 By Jabook

LIST

'Web Programming > Theory' 카테고리의 다른 글

I/O 모듈  (0) 2016.04.07
Internet? web? 그리고 History...  (0) 2016.03.03
웹 동작원리와 URL 구성요소  (0) 2016.02.04

<Internet>

- 네트워크를 서로 연결한 것. 서로 다른 지역에 있는 서로 다른 LAN들을 연결한 것

- 초기엔 군사적인 목적으로 개발되었다. 예로 인공위성이 있다.

​소련과 미국 중 소련이 먼저 개발하여 데이터를 공유하였다.

- 좁은 망들을 연결하는 물리적인 개념(Hardware적 개념)

 

LAN(Local Area Network) - 특정 지역에 국한된 네트워크

 

Web - 인터넷에서 작동하는 서비스(그 외의 서비스는 ftp, mail 등이 존재한다.)

 

※ Internet과 Web의 차이점

Internet은 물리적인 개념으로 서로 다른 지역의 LAN들을 연결한 것을 의미하고, Web은 소프트웨어 적인 개념으로 인터넷 안에서 작동하는 하나의 서비스이다.

 

※ Web 서비스의 가장 큰 특징

- Hyper link처럼 다양한 곳으로 이동 하는 것을 다른 말로 Navigation한다. 라고 하는데, Hyper link라 가장 큰 특징이다.

 

Hyper Text - Hyper link를 가진 문서

 

Hyper Text Markup Language

- Hyper Text를 만드는 언어, 구성하는 언어 -> HTML

 

.html와 .htm

- 웹 브라우저에서 보는 모든 파일의 확장자

 

html과 htm의 차이점

도스를 쓰던 시절에 확장자가 3자리 제한이였을 당시 HTML을 줄여 썻던게 .htm이다. 현재 윈도에 접어 들고 확장자 제한이 없어지면서 .html을 쓰고 있다.

일반적인 입장에선 아무거나 사용해도 무관하나 개발자의 입장에선 직관적으로 한글자 적기도 하고 문서로딩이 빠른 .htm을 주로 이용한다. 동작하는 데는 두 가지가 차이가 없다.

 

Netscape Navigator - 1994년에 발표, 넷 스케이프가 나오기 전까지는 인터넷을 잘 사용하지 않았다. 그저 사람들에게는 익숙하지 않은 기술이었다. 지금 사용하는 Internet Explorer 이전에 전 세계의 웹 브라우저가 넷 스케이프로 시작을 하였다.

 

Internet Explorer

- MS에서 넷 스케이프의 독점을 막기 위한? 웹 브라우저를 만든다. 현재 90%이상의 점유율을 자랑하고 있다.

- 95년부터 시작

- 윈도우에 강제로 Internet Explorer를 탑재시킨다. 왜? 처음에 사람들이 넷 스케이프만 사용하고 있고, Internet Explorer를 잘 사용하지 않아서...

- 맥킨토시를 본따서 만든 windows 95를 설치할 때, 많은 사용자들이 Internet Explorer를 사용함. 우리나라에서도 실제로 window 95가 도입되면서 대부분의 사람들이 Internet Explorer를 사용하기 시작하였다.

※ 여담이지만 현재 우리가 C로 코딩을 할 때, Visual C를 대부분 사용자들이 사용할 것이다. Visual Studio에서 사용하는 언어는 Visual C인데, 사람들이 초기에는 볼랜드 C를 사용했다. 그런데 MS에서 자신들이 만든 Visual C를 사용하게 하기 위해 이미 많은 곳에서 사용되고 있는 윈도우에 볼랜드 C를 작동되지 않게 만들어버린다. 그러므로 Visual C를 사람들이 사용하게끔 만들었음.. 경영 전략이겠지만 뭔가 치사하다...

Visual Basic도 처음에 MS것이 아니었음. 회사를 통째로 인수해 버린다. Power Point 등도 마찬가지

대단한 MS...!

 

Internet Explorer의 버전 업

- MS는 Window와 Internet Explorer를 IT시장에서 엄청난 점유율을 자랑하고 있었다. 1등을 하고있어서 그런가... 관리를 소홀하게 하다가 버전 업을 안하니까 Plug-in을 설치 해야하는 상황이 발생한다. 그러다 보니 Client의 PC들은 설치할 것들이 많아 지고 점점 무거워진다.

그래서 치고 나온 것이 구글 크롬, 애플 사파리 등이 늘어나기 시작하였다.(2007년부터...)

2007년...? 이 시기는 스마트폰의 보급이 시작하던 때 였다. 그러다 보니 사람들은 PC보다 스마트폰을 더 많이 사용하게 되었고, PC에서 사용하던 Internet Explorer을 사용하지 않게 되었다.

IT시장에서는 이것을 MS의 독점을 뒤집을 수 있는 기회라고 생각하였다.

현재 우리가 사용하고 있는 스마트폰 중 갤럭시 시리즈는 구글 크롬(브라우저같은 경우엔 Plug-in(액티브X, Flash)를 설치하라고 하는데 크롬은 그렇지 않음.)의 브라우저를 사용하고 있다.

위기를 느낀 MS는 최근에 갑자기 버전업을 많이 함. 과거에 버전업을 10년에 2~3밖에 안하던 MS가 불과 2년사이에 3번의 버전업을 한 것을 보면 알 수 있다.

LIST

'Web Programming > Theory' 카테고리의 다른 글

I/O 모듈  (0) 2016.04.07
Web? Web Server? Web Client? Web Browser?  (1) 2016.03.04
웹 동작원리와 URL 구성요소  (0) 2016.02.04

<웹 동작원리>

Client

- 웹 브라우저는 클라이언트에게 있음. 서비스를 받는 것

Server

- 서비스 해주는 것

 

<URL(Uniform Resource Location)>

- 자원의 위치를 단일화 된(공통된) 방법으로 알려주겠다.

4개의 구성요소 : Protocol://Server Address : Port Number : File-path

1. Protocol : 통신 규약, 서로 통신을 위한 공통된 약속(규약) HTTP(Hyper Text Transfer Protocol)

 

http://

- 보안 X 

https://

- 보안 O secure - 전송될 때 암호화 됨.

 

2. Server Address

www.naver.com

- IP(Internet Protocol) 주소

IP주소로 얼마까지 커버가능 한가?, A, B, C, D클래스, 4Byte

 

DNS(Domain Name Server)

 

디폴트 파일 index.html

- Port Number와 File-Path를 설정하지 않고, 주소만 입력할 때 index.html가 출력, 이것은 디폴트 파일이다.

 

3. Port Number

- 한 컴퓨터에서 실제로는 IP주소로 하나의 연결이 되어 있지만, 여러 개의 커넥션을 가질 수 있게 하는 논리적인 단위

- 웹 브라우저를 쓰면 80번 포트 번호 사용(http port)

- 데이터 베이스는 3306 포트 번호 사용

- 웹 서버와 통신할 때 사용하는 포트번호는 80번 이기 때문에 생략 가능



LIST

'Web Programming > Theory' 카테고리의 다른 글

I/O 모듈  (0) 2016.04.07
Web? Web Server? Web Client? Web Browser?  (1) 2016.03.04
Internet? web? 그리고 History...  (0) 2016.03.03

+ Recent posts