반응형
[컴퓨터 구조] Race Condition (경쟁 상태)
PROGRAMMING/01. 컴퓨터 구조2024. 4. 5. 13:07[컴퓨터 구조] Race Condition (경쟁 상태)

★KEYWORD★레이스 컨디션 / 경쟁하는 상태 / 두 개 이상의 프로세스가 공통 자원을 병행으로 읽거나 쓰는 동작을 할 때 순서에 따라 실행결과가 달라지는 것 / 상호배제 / 데드락 / 기아상태 / 세마포어 / 뮤텍스 Race Condition 이란?두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다.Race의 뜻 그대로, 간단히 말하면 경쟁하는 상태, 즉 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 말한다.경쟁 프로세스의 경우, 세 가지 제어 문제에 직면한다.Mutual exclusion, deadlock, sta..

[자료구조] Queue (큐)
PROGRAMMING/05. 자료 구조2024. 3. 27. 17:51[자료구조] Queue (큐)

큐(Queue)는 무엇일까?기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 말한다.영어 단어 queue는 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 된다. 나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다.프린터의 출력 처리나 윈도 시스템의 메시지 처리기, 프로세스 관리 등 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용된다. 큐의 구현배열 사용 : 구현이 쉽지만 크기가 동적이 아니고, 런 타임시 필요에 따라 늘어나거나 줄어들지 않는다.연결 리스트 사용 : 크기가 동적이라 편리하고 런타임 시 필요에 따라 ..

[C#] 식 본문 정의 / 멤버
PROGRAMMING/03. C#2024. 3. 25. 19:01[C#] 식 본문 정의 / 멤버

식 본문 정의=> 연산자C#에서 두 가지 방법으로 사용할 수 있다.람다 식에서 람다 연산자로, 람다 본문에서 입력 변수를 구분한다식 본문 정의에서는 멤버 구현에서 멤버 이름을 구분한다식 본문 멤버란 무엇일까?메소드를 비롯하여 속성, 인덱서, 생성자, 소멸자는 공통된 특징이 있다. 이들은 모두 클래스의 멤버로서 본문이 중괄호{}로 만들어져 있다. 이러한 멤버의 본문을 식(expression)만으로 구현하는 것이 가능하다. 이렇게 구현된 멤버를 영어로 "Expression-Bodied Memeber" 라고 하고, "식 본문 멤버" 라고 한다. 식 본문 정의를 사용하면 간결하고 읽기 쉬운 형식으로 멤버의 구현을 제공할 수 있다. 메서드 또는 속성과 같은 지원되는 멤버에 대한 논리가 단일 식으로 구성된 경우 식..

[컴퓨터 구조] 컴파일러 vs 인터프리터
PROGRAMMING/01. 컴퓨터 구조2024. 3. 23. 14:52[컴퓨터 구조] 컴파일러 vs 인터프리터

★KEYWORD★컴파일러 / 인터프리터 / 번역프로그램 / 컴파일러: 코드전체를해석 / 인터프리터: 한 줄씩 읽어들임 / 컴파일러 인터프리터 차이 컴파일러(compiler)는 무엇이고 어떻게 작동할까?컴파일러는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램이고,코드 전체를 통째로 해석하는 특징을 가지고있다. 작동하는 과정은 다음과 같다. 소스 코드 읽기 :소스 코드 파일을 읽어들인다어휘 분석 : 소스 코드를 토큰이라는 작은 요소로 분해한다. 이 단계에서 컴파일러는 주석, 공백, 탭 문자 등을 제거하고, 키워드, 연산자, 식별자, 리터럴 등의 토큰으로 분류한다.구문 분석 : 토큰들을 구조화 하여 추상 구문 트리를 생성한다. 이 과정에서 문법에 따라 토큰들을 조합..

컴파일링의 각 과정
PROGRAMMING/00. 관련 용어2024. 3. 22. 21:39컴파일링의 각 과정

★KEYWORD★컴파일 / CPU가 이해할 수 있는 언어로 번역하는 것 / 4가지 과정 / 전처리 / 컴파일 / 어셈블리 / 링킹컴파일(Compile) 이란?컴파일은 인간이 이해할 수 있는 언어로 작성된 소스 코드(고수준 언어 : C, C++, Java 등)를 CPU가 이해할 수 있는 언어(저수준 언어 : 기계어)로 번역(변환)하는 작업을 말한다.우리가 C, C++, Java로 작성하는 소스 코드는 컴퓨터가 이해할 수 없다. 컴퓨터는 0, 1로 이루어진 기계어만 이해할 수 있기 때문이다.따라서 우리가 작성한 소스 코드를 컴퓨터가 이해할 수 있게 0, 1로 이루어진 기계어로 번역하는 컴파일 과정이 필요하다.소스 코드는 컴파일을 통해 기계어로 이루어진 실행 파일이 된다. 이 파일을 실행하면 실행 파일 내용이..

[네트워크] IP (인터넷 프로토콜) / IPv4
PROGRAMMING/02. 네트워크2024. 3. 22. 20:26[네트워크] IP (인터넷 프로토콜) / IPv4

★KEYWORD★인터넷 프로토콜 / 인터넷 규약 주소 / 주소체계 고유주소 / 데이터 송수신 / IP주소 / IPv4 / 첫번째 인터넷 프로토콜  인터넷 프로토콜(IP) 이란?데이터 패킷이 네트워크를 통해 이동하고 올바른 대상에 도착할 수 있도록 데이터 패킷을 라우팅하고 주소를 지정하기 위한 프로토콜 또는 규칙의 집합이다. 인터넷 프로토콜의 역할목적지까지 데이터를 전달하는 기능을 수행 (지정한 IP 주소에 데이터 전달 패킷이라는 통신 단위로 데이터 전달)주소를 관리하는 기능집 주소가 있어야 우편을 보낼 수 있는 것처럼 네트워크에 접속 된 각 컴퓨터에서도 고유한 식별 번호가 있어야 정확하게 데이터를 송·수신 할 수 있다.➡ 따라서 인터넷에 연결 된 모든 컴퓨터에는 고유 주소가 부여되는데, 이것이 IP주소이..

반응형
image