본문 바로가기
반응형

I LEARNED/자료구조13

[자료 구조] 시리얼 통신이란? 시리얼 통신 : 한 번에 1비트씩 전송하는 통신 패러렐 통신 : 한 번에 여러 비트를 전송하는 통신 시리얼 통신 패러렐 통신 통신 거리 원거리 전송에 유리 컴퓨터와 외부 장비 간 통신 단거리 전송에 유리 컴퓨터 내의 디바이스 간 통신 데이터 전송 량 1비트씩 전송 여러 비트 전송 기술 구현 구현 기술 단순 구현 기술 복잡 비용 구현 비용 저렴 구현 비용 고가 대표 장치 예 PC의 RS-232 포트 HDD IDE 케이블 사용 환경 실시간 작은 데이터 처리를 요구하는 환경 많은 양의 데이터 처리를 요구하는 환경 사용 예 산업현장의 각종 장비 간 통신 사용 컴퓨터 내부 장치 간 통신 사용 DTE : 데이터를 스스로 만들어내거나 어디서 보내온 데이터를 처리하는 장치 DCE : DTE에서 받은 데이터를 전송로에 .. 2023. 6. 1.
[자료구조] 스레드와 스케줄러 스레드? : 프로세스 내에서 실행되는 독립적인 실행 흐름 멀티스레드 프로그램에서는 여러 개의 스레드가 동시에 실행되며, 이때 스케줄러(Scheduler)가 스레드들 간의 실행을 관리한다. 스케줄러? 운영체제의 커널 또는 스레드 라이브러리에 의해 제공되는 컴포넌트 스케줄러의 주요 기능 1️⃣스케줄링(Scheduling): 스케줄러는 여러 개의 준비 상태(Ready)에 있는 스레드 중에서 어떤 스레드가 실행될지를 결정한다 각 스레드는 우선순위(Priority)를 가지며, 스케줄러는 이를 고려하여 실행할 스레드를 선택한다 스케줄링 알고리즘에는 라운드 로빈(Round-Robin), 우선순위 기반, 실시간 스케줄링 등 다양한 종류가 있다. 2️⃣문맥 교환(Context Switching): 스케줄러는 현재 실행 .. 2023. 5. 18.
[자료 구조]정적할당?동적할당? C++에서 생성자와 소멸자에 대해 키워드를 많이 접하게되다보니 궁금증이 생겨 좀더 공부하게 됐다. 우선 정적할당(Static allocation)과 동적할당(Dynamic allocation)은 프로그래밍 언어에서 변수나 메모리 공간을 할당하는 방법을 나타내는 용어다. 프로그래밍 관점으로 본다면 메모리 영역은 stack과 heap으로 나눌 수 있는데, 정적으로 메모리를 할당하면 컴파일 시 stack 영역에 할당되며, 함수를 빠져나갈 때 소멸된다. 반면 동적으로 메모리를 할당할 경우 데이터가 heap 영역에 할당된다. heap은 프로그래머에 의해 할당되거나 소멸되기 때문에 프로그래머가 원할 때 원하는 크기로 할당이 가능하다. 포인터 변수는 예외로 stack에 할당된다. 정적할당(Static allocati.. 2023. 4. 26.
[자료 구조] 컴파일(Compile) & 링크(Link) & 빌드(Build) 컴파일 컴파일 시간은 프로그램이 빌드될 때 발생한다. 즉, 빌드 단계 중 컴파일이 포함되어있다. 빌드 : 소스코드 파일을 실행 가능한 소프트웨어로 만드는 과정 컴파일이란 개발자가 작성한 소스 코드를 바이너리 코드(기계어)로 변환하는 과정 링크 여러개로 분리된 소스파일들을 최종 실행 가능한 파일을 만들기 위해 서로 연결해주는 작업 링크의 종류 정적 링크 (Static Link) : 컴파일된 소스파일을 연결해 실행 가능한 파일을 만드는 것 동적 링크 (Dynamic Link) : 프로그램 실행 도중 프로그램 외부에서 코드를 찾아 연결해주는 것 런타임 컴파일 과정을 마친 프로그램이 실행, 동작되는 과정 2023. 4. 25.
[자료 구조] 프로세스 & 스레드 용어에 대한 내 기억을 믿지 못해서 정리했다. ✅프로세스 & 스레드 ☑프로세스? : 실행중인 프로그램 운영체제에 의해 메모리 공간을 할당받아 CPU에서 실행/제어되고 있는 프로그램이다. 종종 '스케줄링의 대상이 되는 작업'이라는 용어와 거의 같이 쓰인다. 데이터(data) + 자원(memory) + 스레드(Thread)로 구성돼 실제로 프로그램이 실행되기까지는 스레드가 데이터+자원을 활용하여 작업을 수행한다. ▶ 프로그램이란 파일 시스템에 존재하는 실행파일이다. ☑스레드 : 하나의 프로세스 내에서 여러 개의 실행 흐름(단일, 동시적, 병렬적)을 두어 작업을 효율적으로 처리하기 위한 모델 프로그램 실행 시 JVM이 시작되고 JVM이 시작되면 자바 프로세스가 시작된다. 이때 프로세스 안에 스레드가 있다. 여.. 2023. 4. 21.
[자료 구조] 프로세스 동기화 #2 Semaphore& Mutex https://veganwithbacon.tistory.com/171 [개념쌓기] 프로세스 동기화 #1 critical section 먼저 포스팅했던 데드락에서의 연장선으로 프로세스 동기화에 대해서 포스팅한다. 주제에 대해서 좀 더 많은 자료를 공부하고 포스팅하려 하다 보니 텀이 발생하는 것 같다. 취업준비하며 공부 veganwithbacon.tistory.com 앞서 포스팅했던 글에서 프로세스 동기화에 대한 내용과 알고리즘 3가지에 대해 알아봤다. 이번 글에서는 세마포어와 뮤텍스에 대해서 알아보자. 공유자원을 안전하게 관리하기 위해 상호배제(Mutual exclusion)를 달성하는 기법이 필요한데, 뮤텍스와 세마포어가 이를 위해 고안된 기법으로 서로 다른 방식으로 상호배제를 달성한다. --------.. 2023. 1. 31.
[자료 구조] 프로세스 동기화 #1 critical section 먼저 포스팅했던 데드락에서의 연장선으로 프로세스 동기화에 대해서 포스팅한다. 주제에 대해서 좀 더 많은 자료를 공부하고 포스팅하려 하다 보니 텀이 발생하는 것 같다. 취업준비하며 공부할 내용이 생각보다 많다..기존에 알던 것들에 더해 정보들을 더해나가다 보니 이해를 해야 하는 부분이 굉장히 많은 것 같다. 혹시 잘못된 내용이 있다면 지적해주시면 감사합니다. 🤔데이터가 어떻게 접근하는지부터 알아보자 1. 저장소에 있는 Data를 연산하는 곳으로 보낸다. 2. 연산하는 부분에서 연산 후 연산 결과를 원 위치로 보낸다. ex) CPU와 Memory(프로세스가 연산의 주체이며 주소공간이 저장소가 된다) ✔그럼 프로세스 동기화는 왜 필요할까 프로세스 동기화(Process Synchronization) : 여러 프.. 2023. 1. 29.
반응형