본문 바로가기
반응형

컴퓨터공학279

그림판에서 JPG를 기본 저장 포맷으로 저장하는 방법 다음과 같이 그림판의 '파일 - 다른 이름으로 저장 메뉴'에서 JPEG 그림에서 오른쪽 마우스를 클릭한다. 여기에서 '빠른 실행 도구 모음에 추가'를 클릭한다. 이와 같이 하면 상단 왼쪽에 JPEG 저장을 위한 아이콘이 생성 된다. 단축키 Ctrl+S는 여전히 PNG가 디폴트가 된다. 2017. 10. 3.
네트워크 토큰 링 (Token Ring) 동작 방식 토크 링 방식은 1980년대 IBM에서 개발되었지만, 이더넷이 나오면서 지금은 거의 사용하지 않는다. 토크 링이 나온 이유는 2개 이상의 노드에서 동시에 전송할 때 발생하는 collision을 해결하기 위해서 이다. 토큰 링(Token Ring) 방식은 다수의 노드가 연결된 네트워크에서 항상 한쪽 방향으로만 통신 된다. 즉, 1번 노드에서 2번 노드로 프레임을 전달하고 그 후 2번 노드에서 3번 노드로 프레임을 전달하고 마지막 노드는 다시 1번 노드로 프레임을 전달한다. 통신할 내용이 없을 때도 항상 프레임은 순환한다. 만약 1번 노드에서 다른 노드로 프레임을 전달하려고 한다면, 1번 노드에서 순환하는 프레임을 받을 때 전송 데이터를 프레임에 실어 순환 시킨다. 이 때 Token을 1로 설정한다. 각 노.. 2017. 9. 29.
PHP (Hypertext Preprocessor) PHP는 웹페이지에 사용하기 위해 개발된 언어로 웹페이지를 동적으로 동작할수 있도록 해준다. 웹페이지에 포함된 PHP는 웹 서버에서 번역되어 실행된다. 즉, 서버사이드 언어이다. Java, JavaScript, MS의 ASP.NET 등과 같은 용도로 사용된다. PHP는 1994년 Ramus Lerdorf에 의해 개발되었다. PHP는 웹에 주로 사용되지만 범용 프로그래밍 언어로도 사용할 수도 있다. PHP는 인터프리터 방식으로 동작하는 스크립트 언어이다. PHP는 페이스북에서 사용되고 JavaScript는 구글에서 많이 사용된다. 2017. 9. 20.
세마포어 (Semaphore) 란? 세마포어(Semaphore)는 수기 깃발이라는 뜻으로 프로세스에서 공유 자원에 접근하는데 사용하는 변수를 의미한다. 세마포어는 상호 배제를 위해 사용되는 방법 중 하나 이다. 다수의 공유 자원에 사용되는 counting semaphore와 1개의 공유 자원에 사용되는 binary semaphore가 있다. 세마포어는 V operation과 P operation을 실행하여 동작한다. 공유 자원에 접근하기 전에 먼저 P를 실행하고 공유 자원을 반납할 때 V를 실행한다. P와 V operation은 다음과 같다. # P operationP(S, I){ while(1) { if(S>=I) { S = S - I; break; } }} # V operationV(S, I){ S = S + I;} 공유 자원을 얻기 .. 2017. 9. 20.
상호 배제 알고리즘 - Peterson 알고리즘 상호 배제 (Mutual Exclusion)) 알고리즘인 Peterson 알고리즘은 다음과 같다. Process#1 Process#2 Flag1 = true; Turn = 1; while(Flag2==true && Turn==1) { // busy wait } // Start of Critical Section ... ... // End of Critical Section Flag1 = false; Flag2 = true; Turn = 0; while(Flag1==true && Turn==0) { // busy wait } // Start of Critical Section ... ... // End of Critical Section Flag2 = false; 위와 같은 Peterson 알고리즘은 2개.. 2017. 9. 20.
상호 배제 알고리즘 - Dekker 알고리즘 최초의 상호 배제 (Mutual Exclusion)) 알고리즘인 Dekker 알고리즘은 다음과 같다. Process#1 Process#2 Flag1 = true; while(Flag2) { if(turn!=0) { Flag1 = false; while(turn!=0) { // busy wait } Flag1 = true; } } // Start of Critical Section ... ... turn = 1; Flag1 = false; // End of Critical Section Flag2 = true; while(Flag1) { if(turn!=1) { Flag2 = false; while(turn!=1) { // busy wait } Flag2 = true; } } // Start of Crit.. 2017. 9. 19.
C# 스레드 실행하기 C#에서 스레드(Thread)를 실행시키기 위해서는 다음과 같이 코딩한다. private void button1_Click(object sender, EventArgs e){ MyThread = new Thread(MyThreadFunc); MyThread.Start();} System.Threading.Thread MyThread = null; public void MyThreadFunc(object Para){ [스레드 코드]} MyThread.Start() 실행 후 스레드가 종료될 때까지 대기하기 위해서는, MyThread.Start() 다음에 MyThread.Join()를 실행시킨다. 2017. 9. 19.
상호 배제 (Mutual Exclusion) 상호 배제는 동시에 실행되는 프로세스들이 임계 영역(Critical Section)에 동시에 들어가지 않도록 하는 것이다. 임계 영역(Critical Section)은 공유 자원에 접근하는 프로세스의 영역이다. 즉, 프로그램 코드 중에서 공유 자원에 접근하는 부분의 코드를 의미한다. 예를 들면, 어떤 프로그램이 파일의 이름을 변경하는 기능이 있을 때, 파일의 이름을 변경하는 코드가 있는 곳이 임계 영역이다. 파일은 여러 프로그램이 사용할 수 있는 공유 자원이다. 2개의 프로그램이 동시에 한 파일의 이름을 변경하려고 하면 예측할 수 없는 결과가 생길 수 있다. 2개의 프로그램이 동시에 파일의 이름을 변경하는 임계 영역에 들어가지 못하도록 하는 기법이 상호 배제이다. 상호 배제는 MS Windows, Uni.. 2017. 9. 19.
[아두이노] char 배열을 String으로 변환하는 방법 아두이노(Arduino)에서 String을 char 배열로 변환하는 함수 String.toCharArray는 있지만, 반대로 char 배열을 String으로 변환하는 함수는 없다. 그래서, char 배열을 String으로 변환하기 위해서는 다음과 같이 직접코딩해야 한다. String str=" "; for(char b=0; b 2017. 9. 18.
반응형