Skip to content

Instantly share code, notes, and snippets.

View mug896's full-sized avatar

Hyunho Cho mug896

View GitHub Profile
/*
* $ gcc -O2 pattern_substitution.c
*
* $ ./a.out
*
* Usage: ./a.out 'string' 'pattern' 'replacement' [g](global)
*
* $ ./a.out 'foo bar zoo' 'foo' 'X'
* X bar zoo
* # 맞는지 테스트

TCP/IP 에 대해 설명할때 나오는 packet, connection-oriented (연결지향), virtual-circuit (가상회선), datagram 과 같은 용어들은 사실 네트워크에서 사용되는 용어들입니다. 따라서 용어에 대한 이해를 돕기 위해서는 먼저 네트워크에 대해 알아볼 필요가 있습니다.

Packet 을 이용하는 네트워크가 나오기 전에는 직접 물리적으로 회선을 연결해 사용하는 circuit switched network 가 사용되었습니다. 물리적으로 회선이 연결되므로 User-A 가 회선을 점유해 사용중일 경우 User-B 는 사용할 수 없는 단점이 있습니다.

Packet 을 이용하는 packet switched network 은 User-A 와 User-B 가 동시에 회선을 사용하는 것이 가능합니다.

@mug896
mug896 / prime.pl
Last active December 13, 2022 02:26
#
# 다음은 thread 와 queue 를 활용하여 1 부터 1000 까지 prime 넘버를 구하는 예제입니다.
# 이것은 빠른 속도를 위한것은 아니고 thread 와 queue 를 이용해서 이렇게도 할 수 있다는 것을 보여주는 것입니다.
# prime 넘버가 하나 발견될 때마다 해당 prime 넘버용 thread 가 생성되고, 자신이 걸러내지 못하는 숫자는
# queue 를 이용해 downstream thread 로 보냅니다. 따라서 prime 넘버가 발견될수록 비례해서 thread 생성이 증가하고
# 그에따라 OS 단에서는 thread 간 context switching 이 증가하게 되는 구조가 됩니다.
# (1 부터 1,000 까지를 10,000 으로 변경해 실행을 해보면 점점 속도가 느려지는 것을 볼 수 있습니다.)
#
# bash$ ls /proc/`pgrep -x prime.pl`/task # 생성 스레드 조회
#
@mug896
mug896 / test.js
Last active September 15, 2022 02:30
/*
* test1.js, test2.js, test3.js 세개의 파일
*
* test1.js 파일은 세명의 접속자가 동시에 critical section 에 해당하는 코드를 실행할 경우
* 결과가 오류가 될 수 있는 것을 보여줍니다.
*
* test2.js 파일은 위에서 발생하는 오류를 Queue 를 이용해 순차적으로 실행하여 수정합니다.
* 여기서 사용된 Queue 에 대한 설명은 다음 주소에서 확인할 수 있습니다.
* https://stackoverflow.com/a/51482852/1330706
*