Connecting Life and Technology

기술과 일상 사이를 잇는 워킹맘 기획자의 큐레이션( A Working Mom's Curation)

반응형

Study(아카이브)/OS&Linux 23

뮤텍스(Mutex)와 세마포어(Semaphore)

동기화 리눅스 커널은 동기화와 독점적인 접근을 허용하기 위해 다양한 방법을 사용하고 있다. 여러 프로세스가 동일한 자원을 조작할 경우에 세마포어를 이용하는 것이 편리하다. 멀티 프로세서 환경에서 여러 CPU가 동시에 참조하는 테이블을 보호하기 위해서는 스핀락(spin lock)을 이용하는 것이 가장 일반적이다. 뮤텍스(Mutex)란? MUTual EXclusion 으로 상호배제라고도 한다. Critical Section을 가진 스레드들의 Runnig Time이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술이다. 다중 프로세스들의 공유 리소스에 대한 접근을 조율하기 위해 locking과 unlocking을 사용한다. 즉, 쉽게 말하면 뮤텍스 객체를 두 스레드가 동시에 사용할 수 없다는 의미이다. 세..

컴파일, 오브젝트 파일, 링킹, 재배치: C 프로그램 빌드 프로세스 정리

본 문서는 C 프로그램이 실행 파일로 생성되는 과정을 GNU C Compiler(gcc)를 기준으로 정리한 자료입니다. 1. 컴파일 과정 (Build Process)C 코드가 실행 파일로 변환되기까지 다음과 같은 단계를 거칩니다.1.1 전체 빌드 흐름test.c → (전처리) → test.i → (컴파일) → test.s → (어셈블) → test.o → (링킹) → test (실행 파일)1.2 각 단계 설명전처리(Preprocessing): #include, #define 지시문을 처리하여 결과 파일(.i)을 생성합니다.컴파일(Compilation): 전처리된 코드를 어셈블리 코드(.s)로 변환합니다.어셈블(Assembly): 어셈블리 코드를 기계어로 변환하여 오브젝트 파일(.o)을 생성합니다.링킹(L..

운영체제가 있는 경우의 main() 호출과정

C코드를 컴파일하면 실행파일이 생성 >> 생성된 실행 파일은 하드디스크(HDD)에 저장 실행파일 시작 >> 실행 파일의 헤더를 읽어서 실행 파일의 종류를 파악 & 사용할 핸들러를 결정함 * 핸들러 : 각 섹션에 대한 정보를 해석, 필요한 데이터들을 RAM에 로드 프로그램 코드와 상수가 있는 Text 세션 >> Text 세그먼트로 초기화된 데이터가 있는 data 세션 >> data 세그먼트로 로드 오브젝트 파일은 코드나 데이터의 종류 별로 영역을 나누어 관리 >> 이 영역을 섹션이라고 함 프로그램이 실행될 때는 실행 가능한 오브젝트 파일의 섹션들이 RAM에 로드 됨 이때 RAM에 로드된 각 메모리 영역을 세그먼트라고 함. Data 세그먼트를 할당한 다음 bss세그먼트를 할당 초기화되지 않은 전역 데이터들은..

리눅스 Vmware 구동시 하드웨어 제어(Beep음, 네트워크 인식)

우분투 Beep 음 끄기 /etc/profile 파일에 xset b off 요거 추가하면 소리 안남 윈도우 7에서 VMWare 네트워크 인식이 안될 때 VM Setting 실행 >> Virtual Machine Settings 창이 뜨면 Network Adapter 선택 NAT로 설정되어 있는 것을 Bridged 로 선택 Replicate physical networks sconnection state도 선택 우분투 실행 후 IP 설정은 자동 DHCP로 설정

OLE(Object Linking and Embedding)

OLE(Object Linking and Embedding)은 복합문서 기술에 대한 마이크로 소프트의 기반 기술 여기서 복합문서란 가시적이고 모든 종류의 정보 객체(문서, 달력, 동영상, 소리, 만화, 3D, 계속 갱신되는 뉴스, 컨트롤 등)를 담는 바탕화면 같은 것 각 바탕화면의 객체는 독립된 프로그램 개체로서 사용자와 상호 동작하고 바탕화면의 다른 객체와 통신한다. 마이크로소프트 ActiveX가 기술의 일부인 OLE는 더 큰 일반 개념인 COM과 그 분산판인 DCOM의 일부로서 편승하고 있다. 하나의 OLE 객체는 필수적으로 하나의 컴포넌트 또는 COM 객체이다 개 념 의 미 OLE 복합문서를 만들거나 전시할 API 집합 Document (compound document) 활성 바탕화면에서 이종 it..

Ubuntu 메일 서버

postfix 설치 $ sudo apt-get install postfix postfix 설정 $ sudo dpkg-reconfigure postfix ; 환경설정 Postfix Configuration : server.com mail.server.com localhost.server.com localhost 동기 업데이트 설정 Yes/No Postfix Configuration : 기본 설정을 그대로 사용 procmail : yes 로컬 주소 확장용 문자 : + (기본값) 메일 폴더 설정 : sudo postconf -e 'home_mailbox = Maildir/' 참고 블로그 http://sukwoo.blogspot.com/2008/08/ubuntu-mail-server.html

OSGi and UPnP

UPnP (universal plug and play)UPnP는 PC, 주변장치, 지능형 가전제품, 무선 장비 등과 같은 장치들을 네트웍에 접속시켰을 때, 인터넷과 웹 프로토콜을 사용하여 서로를 자동으로 인식할 수 있도록 해주는 표준이다. UPnP를 이용하면, 사용자가 어떤 장치를 네트웍에 추가하면 그 장치는 스스로 구성을 완료하며, TCP/IP 주소를 받고, 다른 장치들에게 자신의 존재를 알리기 위해 인터넷 HTTP에 기반을 둔 발견 프로토콜을 사용하게 된다. 예를 들어, 현재 네트웍에 접속되어 있는 카메라와 프린터가 있고 그 프린터를 통해 사진을 출력하려고 할 때, 카메라의 단추를 누르면 카메라가 "발견 요청" 신호를 네트웍에 보냄으로써 이용 가능한 프린터가 네트웍 상에 있는지 찾도록 할 수 있다. ..

TFTP 설정

1) tftp가 설치되어 있는지 아닌지 알려면 rpm -qa | grep tftp 2) 설치가 되어 있지 않아서 다운 받는다면 # yum install tftp # yum install ftfp-server 3) 설치 완료 되면 # vi /etc/xinetd.d/tftp service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = yes --> no 로 변경 per_source = 11 cps = 100 2 flags = IPv4 } # service xinetd restart 4) 동작 확인하기 ..

리눅스 압축파일 사용 명령어

tar 파일 압축 해제는 밥먹듯이 하면서 그외에 옵션과 명령어를 찾으려고 하니 없었다 ㅠㅅㅠ 네이버 뒤지는 시간에 차라리 정리하는게 나을 듯. . tar 옵션 -c 디렉토리를 포함하여 여러개의 파일들을 묶을 때 사용한다 -x 디렉토리를 포함하여 묶인 파일의 압축을 풀겠다는 것을 tar에게 알린다 -t tar파일 안에 있는 파일이나 디렉토리 목록을 볼때 사용한다 -v 작업 진행 상황을 화면에 표시한다 -f 파일을 묶을 때는 출력 파일, 파일의 압축을 풀때는 입력 파일을 에 적어준다 -r tar화일 끝에 파일을 추가한다 -z gzip(gunzip)과 관련하여 압축이나 해제를 한꺼번에 하려고 할 때 사용한다 -j bzip(bunzip)과 관련하여 압축하거나 해제하는 옵션으로 사용한다 압축 # tar -cvf ..

반응형