코딩공부/ComputerScience(7)
-
쓰레드(Thread)란 무엇인가?(단일 스레드/멀티 스레드 장단점)
쓰레드란 프로그램(프로세스) 실행의 단위이며 하나의 프로세스는 여러개의 쓰레드로 구성이 가능하다. 하나의 프로세스를 구성하는 쓰레드들은 프로세스에 할당된 메모리, 자원 등을 공유한다. 프로세스와 같이 실행, 준비, 대기 등의 실행 상태를 가지며 실행 상태가 변할때마다 쓰레드 문맥교환(context switching)을 수행한다. 각 쓰레드별로 자신만의 스택과 레지스터를 가진다. 쓰레드(Thread)의 장점 쓰레드는 프로세스보다 생성 및 종료시간, 쓰레드간 전환시간이 짧다. 쓰레드는 프로세스의 메모리, 자원등을 공유하므로 커널의 도움없이 상호간에 통신이 가능하다. 단일 스레드 - 하나의 프로세스에서 하나의 스레드 실행 - 하나의 레지스터와 스택으로 표현 장점 : 자원 접근에 대한 동기화를 신경쓰지 않아도 ..
2022.04.20 -
HTTPS란?
HTTP Secure의 약자이며 HTTPS를 사용하여 전송되는 데이터는 TLS를 통해 보호된다 TLS는 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트 의 인증을 하는데 사용된다. SSL(TLS) 동작방식 클라이언트가 서버에 접속하며 랜덤 데이터를 전송. (Client hello) 서버가 Client hello에 대한 응답으로 Server hello를 함 (이때 인증서와 랜덤데이터 제공) 클라이언트의 브라우저에서 서버가 건네준 인증서가 CA에서 발급된건지를 확인하고 공개키로 인증서를 복호화한다. (인증서가 믿을 수 있다고 판단함) 클라이언트와 서버의 각각의 랜덤 데이터를 가지고 클라이언트에서 pre master secret값을 만들어냄 (대칭키) pre maste..
2022.04.13 -
[운영체제] 프로세스 생성 과정
프로세스란? CPU에 의해서 현재 실행되고 있는 프로그램 프로세스의 상태 Ready 상태 프로세스가 처리기(CPU)를 사용하지 있지는 않지만 언제든 사용할 수 있는 상태 프로세스가 처리기의 배정을 기다리고 있는 상태 다른 프로세스 실행을 위해서 일시적으로 정지해 있는 상태 CPU에 의해 처리되기 위해 주기억 장치에 존재하는 상태 Run 상태 프로세스가 CPU를 차지하고 있는 상태 프로세스의 명령이 실행되고 있는 상태 Block, Wait, 보류 상태 프로세스가 어떤 사건이 일어나기를 기다리고 있는 상태 처리속도가 느린 I/O(입출력) 작업 중인 상태 외부적인 사건이 생길 떄까지 실행할 수 없는 상태 프로세스 생성과정 먼저 프로세스가 생성이 되려면 파일 시스템의 그 대상이 되는 exe파일이 있어야 한다. ..
2022.04.13 -
[한권으로 읽는 컴퓨터 구조와 프로그래밍] 저수준 I/O(~p.237), 네트워킹
파동에 올라타라 장거리 통신에는 마크-스페이스 방식이 적합하지 않다. 마크-스페이스 신호 문제는 라디오를 가능하게 한 트릭을 똑같이 적용해 해결할 수 있다. 전달하려는 신호를 바탕으로 반송파를 마크-스페이스 파형처럼 변화시키는 변조를 통해서 해결 가능! 범용 직렬 버스 USB는 좀 더 사용하기 어렵고 호환성이 떨어지는 커넥터를 사용하며 요즘에는 장치 충전에 더 중요한 역할을 함. USB로 연결되는 시스템은 모두 똑같은 지위가 아니며 모든 종단점을 담당하는 컨트롤러가 존재한다. USB는 데이터를 패킷으로 나눈다. 패킷이란 우체국 소포와 같은 것으로 택배 송장은 헤더 택배 내용물은 페이로드라고 생각하면 된다 운송 요금은 대역폭으로 생각할 수 있다. 요금이 충분하지 않으면? 배송을 거부할 수 있다. 대역폭이 ..
2022.02.08 -
[한권으로 읽는 컴퓨터 구조와 프로그래밍] 인터럽트, 상대 주소 지정
인터럽트 등장 배경 어떤 작업이 진행되는데 중간에 꼭 확인해야 하는 이벤트가 발생한다면? - 작업을 다 끝내고 이벤트를 처리한다? 늦어서 더이상 이벤트를 처리할 수 없는 상태가 됨 - 폴링 방식을 사용한다? 폴링 : 정해진 시간 또는 순번에 상태를 확인해서 상태변화가 있는지 없는지를 체크하는 방식 본 작업보다 간섭 처리 작업에 더 시간이 오래 걸릴 수 있다. -> 소프트웨어적으로 해결할 수 있는 방법은 소스 군데군데 상태를 체크할 수 있도록 코딩을 해야하는것;;. 프로그램의 구조를 잘 배치한다? 한계가 있음 실행중인 프로그램을 잠깐 중단시켜서 주의를 기울어야 하는 외부의 요소에 대응할 수 있게 만들 방법으로 새로운 하드웨어 장치가 필요 => 인터럽트!! 인터럽트 시스템의 구조 적절한 신호가 들어오면 CP..
2022.02.02 -
[한권으로 읽는 컴퓨터 구조와 프로그래밍] 비트를 처리하기 위한 하드웨어
릴레이 릴레이 작동 원리 릴레이는 내부에 '전자석'(코일)을 포함하고 있습니다. 이 전자석은 전류가 통하게되면 자석이되는 성질을 갖고 있습니다. 때문에 전원을 공급하게되면 릴레이 내부에 전자석이 자석이되어 옆에 있던 철편을 끌어당겨 스위치가 ON 이 되는것입니다. 릴레이는 여러 종류가 있지만, 모두 이러한 원리로 작동합니다. 3,4번으로 5VDC (구동전압) 입력시 코일에 전류가 흐르며 자석이됨. 코일이 자석이되면 철편(스위치)을 끌어당겨 스위치가 ON됨. 1,2번이 연결(스위치 ON)되어 220VAC가 흐르며 조명이 켜지게됨. e.g) 수도 밸브, 모터, 발전기.. 역기전력이란? 릴레이 코일에 인가되는 전기가 차단되었을 때 순간적으로 300볼트 이상의 위험 전압이 생성되는 것. 이때 발생하는 과전압은 ..
2022.01.26