Computer Science
-
[OS] Process and Thread - 프로세스와 쓰레드 개념과 차이점Computer Science/Operating System 2021. 2. 7. 02:28
Process 운영체제에서 말하는 프로세스란, Program in Execution 즉 실행중인 프로그램의 단위를 의미한다. 단일 작업을 지원하던 이전 OS들과는 달리, 현재의 운영체제는 다중 동시 작업을 지원한다. 그말은 즉슨 여러 프로세스가 메모리에 동시 적재되고, 한꺼번에 돌아가야 한다는 것을 뜻한다. 시분할(time sharing)으로 인한 Multi Process 체제에서 각각의 프로세스는 현재 상태를 백업해야 할 필요성을 갖는다. 따라서 각각의 프로세스는 특정 시점에서 프로세스의 상태를 나타내는 요소들의 집합을 뜻하는 Process Context를 갖게 되었다. Process Context에는 다음과 같은 요소들이 있다. - CPU 수행 상태를 나타내는 Hardware Context(Progr..
-
[OS] 운영체제(Operating System)의 개요 및 역할Computer Science/Operating System 2021. 1. 25. 22:48
현존하는 모든 컴퓨터, MPU에는 운영체제가 존재한다. 보편적으로 우리는 Mac OS, Window, Linux 등의 다양한 상용 운영체제를 알고 있고, 가지고 있다. 컴퓨터 과학에서 운영체제에 대해서 정의하면, 운영 체제(Operating System): 컴퓨터의 하드웨어를 관리하고 응용 소프트웨어를 실행하기 위해 존재하는 시스템 소프트웨어. 좁은 의미에서는 보안, 추상화, 자원 관리의 역할을 맡고 있는 시스템 소프트웨어인 커널만을 가리키는 단어이지만, 넓은 의미에서는 커널을 포함한 주변 시스템 유틸리티를 전부 포함한다. 위와 같이 컴퓨터 하드웨어와 응용 SW 사이에 위치해서 자원의 형평성 있는 분배를 통한 효율적 관리, 사용자에게 시스템을 편리하게 이용 가능한 환경을 제공하는 역할을 한다. 이러한 운..
-
[OS] Interrupt 인터럽트란 ?Computer Science/Operating System 2021. 1. 22. 00:50
인터럽트는 펌웨어 개발의 필수 기능이자 OS 개념이다 Interrupt: 마이크로프로세서(CPU)가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것 - 출처: 위키백과 인터럽트는 위와 같은 정의를 가지고 있는데, 주로 "프로그램을 실행하던 중에 예기치 못한 상황이 발생했을 때, 현재 처리하던 작업을 중단하고 해당 상황을 먼저 처리한 뒤에 기존의 작업을 진행하는 것" 이라고 하기도 한다. 이러한 설명은 인터럽트의 발생을 굉장히 예외적이고, 급작스러운 것으로 묘사하는 것 같지만 실제로는 인터럽트는 매우 빈번하고 흔하게 일어난다. OS는 CPU라는 한정된 자원을 가지고 있고, 이것을 적절하게 프로세스들..
-
유/무선 공유기와 스위칭 허브의 차이Computer Science/Network 2020. 3. 6. 03:01
네트워크 통신할 때는 필수로 알아야 할 두가지 장치가 있다 iptime, anygate나 각종 통신사에서 인터넷 설치시 자주 보게 되는 유/무선 인터넷 공유기와 스위칭 허브에 대해 알아보자 라우터란, 서로 다른 네트워크 상에 패킷을 전달할 때, 최적의 경로를 찾아 전달하는 장치 이다 ! 두 디바이스에서 통신을 할 때 서로를 연결해주는 다리라고 보면 된다 보통의 가전용/오피스용 라우터도 위와 같이 하나의 WAN 포트와 4개의 LAN 포트, 전원으로 이루어져있을 것이다 🙂 유/무선 공유기는 WAN을 통해 네트워크를 할당받고, LAN포트 혹은 무선 Wifi를 통해 각각의 연결된 장치에 네트워크를 할당한다 이때 할당하는 네트워크는 IP로 구분되는 것이다 예를 들어 유/무선 공유기가 192.168.2.1이라는 게..
-
Window C 소켓 통신(Server/Client) 코드Computer Science/Network 2020. 2. 16. 17:41
Window C 환경에서 Socket을 사용해서 서버와 클라이언트가 채팅으로 통신하는 프로그램입니다 * 한 솔루션에서 멀티 프로젝트를 생성하여 실행했습니다🤭 일단 각각의 프로젝트에서 독립 실행을 위해 솔루션-속성-공용 속성-시작프로젝트에서 현재 시작영역을 체크해줍니다 또한 윈도우 환경에서 TCP/IP 소켓을 사용하기 위해 각각의 프로젝트에서 프로젝트 '속성'->'구성 속성'->'입력'->'추가 종속성'->ws2_32.lib 을 추가해줍니다!! 각각의 헤더파일과 소스코드는 다음과 같습니다 Server.h #ifndef SERVER_MAIN_H #define SERVER_MAIN_H #include #include #include #include using namespace std; #include #inc..
-
Ethernet(이더넷)통신과 CSMA/CD 방식이란?Computer Science/Network 2020. 1. 8. 13:14
이더넷은 컴퓨터 전공자가 아니더라도 한번쯤 들어봤을 용어이다 또 이더넷을 들어보지 않았더라도, 랜선이라고 불리는 이 선은 다들 한 번쯤 봤을 것이다 Ethernet : 하나의 인터넷 회선에 유/무선 통신장비 공유기, 허브 등을 통해 다수의 시스템이 랜선 및 통신포트에 연결되어 통신이 가능한 구조. 쉽게 얘기하면 네트워크를 구성하고, LAN, MAN, WAN등의 통신망에서 활용되는 기술규격을 이야기 한다. 특히 우리가 가장 가까이에서 접하는 LAN(Local Area Network)에서 사용하는 표준이다 😮 현재는 미국의 산업 표준 IEEE 802.3 규약에 의해 표준화되었다 이더넷을 통하면 네트워크에 연결된 각 기기들이 48비트 길이의 고유의 MAC 주소를 가지고, 이 주소를 이용해 상호 데이터 교환이 ..