Difference between r1.31 and the current
@@ -1,3 +1,5 @@
#noindex
##====입출력,IO =,IO 입출력 IO
'''IO, I/O, input/output, 입력/출력'''[[입력,input]] 그리고 [[출력,output]].
@@ -17,6 +19,8 @@
= computer architecture 분야에서 =
[[컴퓨터,computer]]의 component들끼리 data/information/bits..를 주고 받는 것?
Sub:
Programmed I/O, PIO
https://ko.wikipedia.org/wiki/프로그램_입출력
[[컴퓨터,computer]]의 component들끼리 data/information/bits..를 주고 받는 것?
hardware IO 를 위해 [[하드웨어레지스터,hardware_register]]를 사용함.
Programmed I/O, PIO
https://ko.wikipedia.org/wiki/프로그램_입출력
@@ -279,6 +283,11 @@
[[신호및시스템,signals_and_systems]] [[신호,signal]] [[통신,communication]]
= IO 없는 experimental/esoteric PL =
Category: No IO - Esolang
https://esolangs.org/wiki/Category:No_IO
https://gunkies.org/wiki/Input/output
https://ko.wikipedia.org/wiki/입출력
IO, I/O, input/output, 입력/출력
CS 일반적으로 ¶
asyncio asynchronous_IO non-sequential_IO
"비동기 입출력(asynchronous I/O) 또는 비순차 입출력(non-sequential I/O)은..."(wk)
https://ko.wikipedia.org/wiki/비동기_입출력
Asynchronous_I/O = https://en.wikipedia.org/wiki/Asynchronous_I/O
Windows(NT API ... WinAPI)에서는
Overlapped_I/O = https://en.wikipedia.org/wiki/Overlapped_I/O 라는 명칭을 쓴다.
"비동기 입출력(asynchronous I/O) 또는 비순차 입출력(non-sequential I/O)은..."(wk)
https://ko.wikipedia.org/wiki/비동기_입출력
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
Windows(NT API ... WinAPI)에서는
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
.NET : System.IO
파일 및 스트림 I/O - .NET | Microsoft Learn
https://learn.microsoft.com/ko-kr/dotnet/standard/io/
파일 및 스트림 I/O - .NET | Microsoft Learn
https://learn.microsoft.com/ko-kr/dotnet/standard/io/
computer architecture 분야에서 ¶
컴퓨터,computer의 component들끼리 data/information/bits..를 주고 받는 것?
hardware IO 를 위해 하드웨어레지스터,hardware_register를 사용함.
Sub:
Programmed I/O, PIO
DMA,direct_memory_access
general-purpose IO, GPIO
{
http://www.ktword.co.kr/test/view/view.php?m_temp1=5385&id=1394
...
GPIO
}
memory-mapped I/O (MMIO)
port-mapped I/O (PMIO)
위 둘 we: https://en.wikipedia.org/wiki/Memory-mapped_I/O_and_port-mapped_I/O
Programmed I/O, PIO
DMA,direct_memory_access
general-purpose IO, GPIO
{
http://www.ktword.co.kr/test/view/view.php?m_temp1=5385&id=1394
...
![Ndict: Ndict:](/wiki/imgs/interwiki/ndict-16.png)
}
memory-mapped I/O (MMIO)
port-mapped I/O (PMIO)
위 둘 we: https://en.wikipedia.org/wiki/Memory-mapped_I/O_and_port-mapped_I/O
IOMMU =,iommu . IOMMU
{
{
http://emal.iptime.org/noriwiki/index.php/IOMMU
{
DMA 가능한 입출력버스(I/O bus = IO_bus Up: 버스,bus)와 주기억장치(
주기억장치 main_memory)를 접속하는 메모리관리장치(MMU).
(비유)
MMU가 (CPU 입장인) 가상주소,virtual_address를 물리주소,physical_address로 변환(주소변환
주소변환
주소변환
address_translation ?
address_translation
address_translation ?? )하듯이,
IOMMU는 주변기기(peripheral_device s ?)에서 보이는 가상주소(장치주소 or 입출력주소 라고 부름)을 물리주소로 변환한다. //
장치주소
입출력주소
device address io address ?
(명칭들)
주변기기의 오동작에서 메모리를 지키기 위해 메모리보호,memory_protection기능도 제공.
AMD에서는
AMD-VD라고 부르며
Intel은
VT-d라고 부른다 //
amd-vd vt-d
amd-vd vt-d
amd-vd vt-d
amd-vd vt-d
PCI-SIG에서는 이런 부분을 I/O 가상화, IOV라고 부르며 // IO_virtualization?
i/o virtualization
i/o 가상화
다른 이름으로는 Address Translation Services (ATS)라고도 부른다. //
Address Translation Services Address_Translation_Services =,ATS .
(2023-09-27에 대충 요약.)
}
IOMMU
IOMMU
IOMMU
}{
DMA 가능한 입출력버스(I/O bus = IO_bus Up: 버스,bus)와 주기억장치(
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
(비유)
MMU가 (CPU 입장인) 가상주소,virtual_address를 물리주소,physical_address로 변환(주소변환
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Naver: Naver:](/wiki/imgs/interwiki/naver-16.png)
![WtEn: WtEn:](/wiki/imgs/interwiki/wten-16.png)
![WpSp: WpSp:](/wiki/imgs/interwiki/wpsp-16.png)
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
IOMMU는 주변기기(peripheral_device s ?)에서 보이는 가상주소(장치주소 or 입출력주소 라고 부름)을 물리주소로 변환한다. //
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
(명칭들)
주변기기의 오동작에서 메모리를 지키기 위해 메모리보호,memory_protection기능도 제공.
AMD에서는
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
Intel은
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Bing: Bing:](/wiki/imgs/interwiki/bing-16.png)
![Ndict: Ndict:](/wiki/imgs/interwiki/ndict-16.png)
![Naver: Naver:](/wiki/imgs/interwiki/naver-16.png)
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
다른 이름으로는 Address Translation Services (ATS)라고도 부른다. //
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
(2023-09-27에 대충 요약.)
}
![Ndict: Ndict:](/wiki/imgs/interwiki/ndict-16.png)
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Bing: Bing:](/wiki/imgs/interwiki/bing-16.png)
I/O bus
I/O port
I/O address
I/O controller
IRQ interrupt_request
PnP
memory-mapped file (memory-mapped I/O와 다름) (IO보다는 메모리관리쪽에 가까운 얘기)
mmap (memory-mapped I/O와 다름) (memory-mapped file I/O 방법)
MKLINK:
포트,port
스트림,stream { 자료의 흐름, stdin stdout stderr }
버퍼,buffer =버퍼,buffer =,buffer . 버퍼 buffer
{
I/O port
포트,port
I/O_port is redir.
입출력_포트 redir to
컴퓨터_하드웨어_포트 ... 즉 컴퓨터 내부 port가 아닌 h/w port (꽂는, 어댑터, 단자)
컴퓨터_소프트웨어_포트 redir to
포트_(컴퓨터_네트워킹) ... 즉 네트워크 포트 얘기만
https://wiki.osdev.org/I/O_Ports
I/O base address![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
![WpKo: WpKo:](/wiki/imgs/interwiki/wpko-16.png)
![WpKo: WpKo:](/wiki/imgs/interwiki/wpko-16.png)
![WpKo: WpKo:](/wiki/imgs/interwiki/wpko-16.png)
![WpKo: WpKo:](/wiki/imgs/interwiki/wpko-16.png)
https://wiki.osdev.org/I/O_Ports
I/O address
I/O controller
IRQ interrupt_request
PnP
plug and play (PnP)
https://ko.wikipedia.org/wiki/플러그_앤_플레이
https://simple.wikipedia.org/wiki/Plug_and_play
https://en.wikipedia.org/wiki/Plug_and_play
Cmp:https://ko.wikipedia.org/wiki/플러그_앤_플레이
https://simple.wikipedia.org/wiki/Plug_and_play
https://en.wikipedia.org/wiki/Plug_and_play
memory-mapped file (memory-mapped I/O와 다름) (IO보다는 메모리관리쪽에 가까운 얘기)
mmap (memory-mapped I/O와 다름) (memory-mapped file I/O 방법)
MKLINK:
포트,port
스트림,stream { 자료의 흐름, stdin stdout stderr }
버퍼,buffer =버퍼,buffer =,buffer . 버퍼 buffer
{
용도는 data 를 임시로 담는 ... 따라서 [[메모리,memory]에 위치.... 스트림,stream esp data_stream 을 안정적으로 처리하기 위해 필수? ... 큐,queue / FIFO data_structure / ADT 와 밀접... ... tbw
single_buffer
double_buffer
triple_buffer
그리고 -ing:
single_buffering
double_buffering
triple_buffering
single 빼고 즉 double 이후부터는 multiple_buffer / multiple_buffering 임.
Multiple_buffering = https://en.wikipedia.org/wiki/Multiple_buffering
//mv to double_buffer:
더블은 computer_graphics 에 매우 자주 쓰임.
Multiple_buffering#Double_buffering_in_computer_graphics = https://en.wikipedia.org/wiki/Multiple_buffering#Double_buffering_in_computer_graphics
└▶(Redirected from Ping-pong buffer) ...
Ping-pong_buffer
{
더블버퍼
이중버퍼
DoubleBuffer = http://wiki.c2.com/?DoubleBuffer
//mv to triple:
TripleBuffer = http://wiki.c2.com/?TripleBuffer
트리플버퍼
삼중버퍼
double_buffer
triple_buffer
그리고 -ing:
single_buffering
double_buffering
triple_buffering
single 빼고 즉 double 이후부터는 multiple_buffer / multiple_buffering 임.
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
//mv to double_buffer:
더블은 computer_graphics 에 매우 자주 쓰임.
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
└▶(Redirected from Ping-pong buffer) ...
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
{
더블버퍼
이중버퍼
![Wiki: Wiki:](/wiki/imgs/interwiki/wiki-16.png)
특히 deferred_update 에 효과적. { http://wiki.c2.com/?DeferredUpdate deferred+update Up: 업데이트,update or 갱신,update or 경신? }
wait-free_synchronization { wait-free synchronization
WaitFreeSynchronization = http://wiki.c2.com/?WaitFreeSynchronization Cmp these: lock-free wait-free non-blocking { ...
lock-free wait-free non-blocking Up: concurrency ? } Up: 동기화,synchronization
wait-free synchronization wait-free+synchronization }의 특별화된/특수화된 형식/형태(specialized form).
ReadWriteLock이 아닌.
}wait-free_synchronization { wait-free synchronization
![Wiki: Wiki:](/wiki/imgs/interwiki/wiki-16.png)
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Google: Google:](/wiki/imgs/interwiki/google-16.png)
![Wiki: Wiki:](/wiki/imgs/interwiki/wiki-16.png)
//mv to triple:
![Wiki: Wiki:](/wiki/imgs/interwiki/wiki-16.png)
트리플버퍼
삼중버퍼
circular_buffer =,circular_buffer =,circular_buffer . circular_buffer
{
AKA: circular_queue , cyclic_buffer , ring_buffer (we)
환형버퍼
원형버퍼
...등이 보이고 내 brainstorm:
고리형버퍼
고리모양버퍼
둥근버퍼
....최적의 번역은? ... cf.
circular
cyclic
{
AKA: circular_queue , cyclic_buffer , ring_buffer (we)
환형버퍼
원형버퍼
...등이 보이고 내 brainstorm:
고리형버퍼
고리모양버퍼
둥근버퍼
....최적의 번역은? ... cf.
![NdEn: NdEn:](/wiki/imgs/interwiki/nden-16.png)
![NdEn: NdEn:](/wiki/imgs/interwiki/nden-16.png)
single, fixed-size 버퍼,buffer인데, 마치 처음과 끝이 연결된 것 처럼 사용하는. data_stream{
Data_stream Up: data 스트림,stream }을 버퍼링,buffering하기 쉽게 만드는 구조. (we)
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
REL: 큐,queue > bounded_queue
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
= https://en.wikipedia.org/wiki/Circular_buffer
"circular buffer, circular queue, cyclic buffer or ring buffer is..."
생각
특히 하드웨어,hardware 입출력,IO or device_driver { 장치드라이버 ? MKLdriver_wrapper ...
DeviceDriver = http://wiki.c2.com/?DeviceDriver
Device_driver = https://en.wikipedia.org/wiki/Device_driver } 에서 자주 쓰임새를 본 듯
일단 메모리,memory 다른 곳에 영향을 끼치지는 않는다는 점에서는 안정적이다 (dynamic_memory_allocation 이 없이 고정된 위치에 있어서)
bounded_queue - fixed size - 오버플로,overflow에 취약할텐데
특히 하드웨어,hardware 입출력,IO or device_driver { 장치드라이버 ? MKLdriver_wrapper ...
![Wiki: Wiki:](/wiki/imgs/interwiki/wiki-16.png)
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
일단 메모리,memory 다른 곳에 영향을 끼치지는 않는다는 점에서는 안정적이다 (dynamic_memory_allocation 이 없이 고정된 위치에 있어서)
bounded_queue - fixed size - 오버플로,overflow에 취약할텐데
Up:
data_structure (we)
circular_data_structure ? (내생각) { circular data structure circular+data+structure
circular data structure } OR
cyclic_data_structure ? (내생각) { cyclic data structure cyclic+data+structure
cyclic data structure }
버퍼,buffer
circular+buffer
}
data_structure (we)
circular_data_structure ? (내생각) { circular data structure circular+data+structure
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
cyclic_data_structure ? (내생각) { cyclic data structure cyclic+data+structure
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
버퍼,buffer
circular+buffer
}
Twins:
https://en.wikipedia.org/wiki/Framebuffer
프레임버퍼
프레임버퍼
프레임버퍼
AKA frame_buffer sometimes framestore .... =,frame_buffer =,framestore .
mentions:
screen buffer = video buffer = regeneration buffer = regen buffer (이건 video memory = video_memory 에 있지 않다. 그래서 off-screen buffer 라고도 한다)
screen_buffer = video_buffer = regeneration_buffer = regen_buffer (regen은 그냥 regeneration의 줄임인듯)
...mentions:
screen buffer = video buffer = regeneration buffer = regen buffer (이건 video memory = video_memory 에 있지 않다. 그래서 off-screen buffer 라고도 한다)
screen_buffer = video_buffer = regeneration_buffer = regen_buffer (regen은 그냥 regeneration의 줄임인듯)
![Ndict: Ndict:](/wiki/imgs/interwiki/ndict-16.png)
![Ggl: Ggl:](/wiki/imgs/interwiki/ggl-16.png)
![Bing: Bing:](/wiki/imgs/interwiki/bing-16.png)
} // 프레임버퍼
Inter:
Sub:
cache-only_memory_architecture (COMA)
cache
}
버스,bus
스풀링,spooling - rel. 스풀,spool
폴링,polling
하드웨어,hardware esp peripheral
장치,device
device_driver
접근,access or 액세스,access =,access .
{
memory 접근, io 접근, ....
cache-only_memory_architecture (COMA)
cache
}
버스,bus
스풀링,spooling - rel. 스풀,spool
폴링,polling
하드웨어,hardware esp peripheral
장치,device
device_driver
접근,access or 액세스,access =,access .
{
memory 접근, io 접근, ....
![WpKo: WpKo:](/wiki/imgs/interwiki/wpko-16.png)
= https://ko.wikipedia.org/wiki/액세스_(마이크로프로세서)
= https://ko.wikipedia.org/wiki/액세스_(마이크로프로세서)
}
memory_map
software/programming 분야에서 ¶
콘솔,console
redirection
셸,shell
stdin - standard_input 입력,input
stdout - standard_output 출력,output
stderr - standard_error 에러,error
...
redirection
셸,shell
stdin - standard_input 입력,input
stdout - standard_output 출력,output
stderr - standard_error 에러,error
...
.NET : System.IO namespace
System.IO 네임스페이스 | Microsoft Learn
https://learn.microsoft.com/ko-kr/dotnet/api/system.io?view=net-8.0
System.IO 네임스페이스 | Microsoft Learn
https://learn.microsoft.com/ko-kr/dotnet/api/system.io?view=net-8.0
신호/통신 분야에서 ¶
여기선 보통 시간 $\displaystyle t$ 에 따라
입력,input을 $\displaystyle x(t),x[n]$
출력,output을 $\displaystyle y(t),y[n]$
으로 하는 notation이 있으며
...
입력,input을 $\displaystyle x(t),x[n]$
출력,output을 $\displaystyle y(t),y[n]$
으로 하는 notation이 있으며
...
SISO : single input single output ...
Single-input_single-output_system
MIMO : multiple input multiple output ...
MIMO
물론 같은 식으로 SIMO MISO 도 있음
...
SISO MIMO
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
MIMO : multiple input multiple output ...
![WpEn: WpEn:](/wiki/imgs/interwiki/wpen-16.png)
물론 같은 식으로 SIMO MISO 도 있음
...
![Google: Google:](/wiki/imgs/interwiki/google-16.png)
BIBO_stability - bound bounded 안정성,stability
여기선 입출력을
bounded_input
bounded_output
unbounded_input
unbounded_output
으로 나눌 수 있다.
여기선 입출력을
bounded_input
bounded_output
unbounded_input
unbounded_output
으로 나눌 수 있다.
기타
GIGO (이건 신호/통신 분야에 넣기보다는 정보처리쪽에서, 쓰레기정보가 입력되면 출력도 시원찮다 대충 그런 뜻...
GIGO meaning )
garbage in garbage out
나쁜 데이터에선 나쁜 결과가 나온다
GIGO (이건 신호/통신 분야에 넣기보다는 정보처리쪽에서, 쓰레기정보가 입력되면 출력도 시원찮다 대충 그런 뜻...
![Google: Google:](/wiki/imgs/interwiki/google-16.png)
garbage in garbage out
나쁜 데이터에선 나쁜 결과가 나온다