컴퓨터 네트워크는 크게 단말기와 네트워크 기기로 구성된다. 여기서 단말기란, 통신을 하는 주체를 지칭한다. 단말기에는 데스크톱 컴퓨터, 노트북, 스마트폰, 서버 컴퓨터 등이 포함된다. LAN LAN은 가까운 지역을 묶는 대표적인 컴퓨터 네트워크이다. LAN은 한정된 지역에서 컴퓨터를 기본으로 하는 여러가지 전자 기기 간에 자유롭게 정보 교환을 가능하게 한다. LAN은 사용자가 직접 구축해서 운영하기 어렵지 않다. 심지어 제조사가 달라도, 기기 간의 통신 규약이 달라도 가능하다. OSI 모델의 표준만 지켜주면 된다. OSI 모델 OSI 모델은 계층 1부터 7까지 있다. 계층 1 : 물리 계층 물리 계층에서는 하드웨어를 다룬다. 예를 들어 보낼 데이터를 어떤 파형의 전류로 보낼지 등을 정의한다. 계층 2 :..
임계 영역을 해결하기 위한 방법 뮤택스 공유된 자원(공유자원)의 데이터 혹은 임계영역 등에 하나의 프로세스 혹은 스레드가 접근하는 것을 막아준다. 세마포어 뮤택스는 공유된 자원에서의 동기화 대상이 하나만일때 세마포어는 공유된 자원에서의 동기화 대상이 하나 이상일 때 원자조작 뮤텍스나 임계영역 잠금 없이도 여러 스레드가 안전하게 접근할 수 있는 것 하드웨어의 기능이며, 대부분의 컴파일러에서 원자 조작 기능을 쓸 수 있다. 32비트나 64비트의 변수 타입에 여러 스레드가 접근할 때 한 스레드씩만 처리됨을 보장한다. 변수 값 2~3개 이하에서만 보호해주며, 변수를 읽거나 쓰는 방식이 몇 개 안된다.
스레드 (Thread) 스레드란 어떠한 프로그램(프로세스) 내에서 실행되는 흐름의 단위 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 프로세스 - 팀, 스레드 - 팀장 느낌 스레드의 장점 응답성 향상 자원 공유 효율성 향상 동시성 간결성 스레드의 단점 스레드 간의 상호간섭 성능 저하 동기화 이슈 자원 소비 스레드 C# 예제 멀티스레드 두개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스라고 한다. 쉬운 일을 여러명이서 처리 할 때 사용 어려운 일 하나를 여러명이서 동시에 할 때 사용 CPU 성능을 최대한 활용해야 할 때 사용 멀티스레드의 장점 응답성 향상 자원 효율성 동시성 간결성 멀티스레드의 단점 임계영역(교착상태) 성..