본문 바로가기

CS BASIC

(56)
[운영체제] CPU 스케줄링과 평가 기준 개요 오늘날의 컴퓨터 시스템이 가진 자원, 즉 프로그램이 사용할 수 있는 다양한 하드웨어 장치들은 운영체제에 의하여 적절히 관리되어 집니다. 오늘은 그 중에서도 가장 중요한 자원 중 하나인 CPU(central processing unit)의 스케줄링에 대해서 알아보도록 하겠습니다. CPU 입출력의 버스트 주기(CPU I/O Burst Cycle) 프로세스의 실행은 CPU의 실행과 입출력의 대기 상태의 반복입니다. 즉, 프로세스는 이 두 가지 상태를 오가며 실행이 되고, 주어진 작업(Job)을 수행하게 됩니다. 프로세서(=CPU)의 실행은 CPU 버스트(Burst)라는 것을 통해서 이루어지며, CPU 자원을 할당받고 주어진 작업을 수행하다가, 사용자로부터 입출력을 받아야 할 때에는 입출력 버스트(I/O ..
[운영체제] 프로세스와 상태 전이 개요 프로세스의 정의는 실행중인 프로그램, 비동기적인 행위 등 여러가지로 정의할 수 있습니다. 그러나 일반적으로 “프로세스”라고 부르는 것은 “실행중인 프로그램”을 의미합니다. 하나의 프로세스가 컴퓨터 시스템 내에서 존재할 동안 그 프로세스는 계속해서 일련의 서로 구분되는 상태를 거치게 됩니다. 만일 프로세스가 CPU를 사용중이라면 실행중(running)에 있다고 말하고, CP를 사용하지 않으나 언제든지 사용할 준비를 마쳤다면 준비(ready) 상태라고 말하며 어떠한 사건이 일어나기를 기다리며 멈춰서 대기하는 상태를 보류(block) 상태에 있다고 합니다. 컴퓨터 시스템에서 CPU는 유한한 자원이므로 다양한 실행중인 프로그램 즉 프로세스들은 CPU라는 자원을 받기 위해 운영체제로부터 CPU를 쓸 수 있도..
[운영체제] 운영체제 일반 개요 오늘날의 운영체제는 대형 컴퓨터부터 MS-DOS 라는 운영체제 기반의 일반 PC까지 다양한 컴퓨터에서 사용되고 있습니다. 일반인이게 가장 유명한 마이크로 소프트사의 윈도우가 등장하기 이전에도 운영체제는 존재하였는데, 1960년대에는 운영체제는 단지 하드웨어를 제어하는 소프트웨어로 생각했습니다. 그러다 1980년 대에는 소프트웨어를 펌웨어(Firmware), 즉 마이크로 코드로 전환시켰습니다. 운영체제(Operating System)란 하드웨어를 사용할 수 있게 하기 위해 소프트웨어나 펌웨어로 작성된 프로그램이라고 정의할 수 있습니다. 운영체제는 사용자 인터페이스 정의, 하드웨어의 공동 사용, 데이터 공유, 자원 스케쥴링, 입출력 보조역할, 에러 처리 역할을 수행합니다. 이중에서 운영체제가 관리하는 ..
[CS BASIC] 네트워크(Network)와 OSI 7계층 개요 오늘은 네트워크(Network)의 정의와 OSI 7계층, 그리고 각 계층별 프로토콜까지 알아보도록 하겠습니다. 컴퓨터가 처음 발명 되었을 때에는 다이소에서 몇천원을 지불하면 구매할 수 있는 계산기와 같은 역할을 주로 수행하였습니다. 수학에서 필요로 하는 단순, 반복, 복잡한 계산에 대해서 사람과 달리 실수 없이 꾸준히 할 수 있는 훌륭한 기계였습니다. 그렇기에 과거에는 수학에서 계산의 효율성을 위해 널리 사용 되다가 점차 사용자가 늘어가다보니 컴퓨터가 수행하는 역할이 늘어갔습니다. 과거의 컴퓨터를 사용하던 컴퓨터 과학자, 수학자들은 이러한 과정 조차도 더 효율적으로 하고 싶었던 것인지, 서로 다른 컴퓨터, 즉 계산기 사이에 데이터를 주고 받으면 더 효율적으로 업무를 처리할 수 있을까 하는 생각을 가..
[CS BASIC] 암호(cipher), 암호화(encipher), 대칭키(Symmetric Key), 비대칭 키(Asymmetric Key) 개요 오늘은 서로 다른 두 컴퓨터 시스템 사이에서 데이터를 주고 받을 때 사용할 수 있는 암호화 기술과 암호에 대해 살펴보도록 하겠습니다. 암호(暗號 cipher, cypher) 란? 암호(暗號 cipher, cypher)는 정보를 이해할 수 없도록 암호화 하거나 다시 해독하기 위한 일련의 단계를 정의한 알고리즘을 말합니다. 코드를 통한 인코딩과 암호(cipher)를 통한 암호화(encipher)는 둘다 본래 뜻이 알 수 없게 한다는 점에서 같은 의미로 볼 수 있습니다. 그러나 암호학, 특히 비밀을 유지하기 위한 고전적인 암호학 관점에서는 두 개념을 서로 다르게 구분합니다. 코드는 일반적으로 여러 코드를 모아놓은 코드 사전을 통해 단어나 문장을 대체한다. 예를 들어 "UQJHSE"라는 코드는 "다음 장소..
[CS BASIC] 콘텐츠 보안 기술과, 기업 보안 전략 개요 오늘은 콘텐츠 보안 기술과 기업 보안 전략에 대해서 알아보도록 하겠습니다. 웹브라우저를 통해 탐색할 수 있는 인터넷 공간에서 우리는 다양한 정보를 얻을 수 있습니다. 그리고 이러한 정보는 때로는 무단으로 복제 및 도용되어 사용되기도 하는데요. 그중에서도 특히 기업의 영업 비밀이나 혹은 저작권자에 의해 창작된 게시글 또는 저작물에 대해서는 함부로 복제 및 도용되는 것만으로도 당사자 및 기업에 큰 피해를 줄 수 있습니다. 따라서, 이러한 정보의 무단 복제 및 도용을 막고 사용을 허가한 사용자에게 제한적으로 편집 권한을 주는 등 정보를 보호하기 위해 다양한 콘텐츠 보안 기술과 기업 보안 전략이 설계되었습니다. 콘텐츠 유출 방지 솔루션 유형 설명 보안 USB - 정보 유출방지 등 보안 기능을 갖춘 USB ..
[CS BASIC] 피싱(phishing), 시스템 보안 공격 그리고 네트워크 보안 솔루션 개요 오늘은 피싱(phishing), 시스템 보안 공격 그리고 네트워크 보안 솔루션에 대해서 알아보도록 하겠습니다. 인터넷(Internet)에는 수많은 정보가 존재하고, 다수의 사용자는 이러한 정보를 찾기 위해 웹 브라우저를 통해서 간편하게 정보를 획득할 수 있습니다. 하지만, 인터넷에 올라갈 컨텐츠를 제공하는 공급자 중에는 악의적인 목적을 가지고 다른 회사나 단체를 모방하여 사용자로부터 부당하게 정보를 탈취하는 범죄행위를 하기도 합니다. 그리고 이렇게 악의적인 목적을 가지고 다양한 디지털 매체를 통하여 기밀을 필요로 하는 정보를 취득하는 행위를 피싱(phishing)이라고 합니다. 피싱(phishing)이란? 피싱(phishing)은 전자우편 또는 메신저를 사용해서 신뢰할 수 있는 사람 또는 기업이 보..
[CS BASIC] 정보 보안(InfoSec)과 해킹(Security Hacking) 개요 오늘은 정보 보안(InfoSec)과 해킹(Security Hacking), 그리고 다양한 도구와 공격 기법에 대해서 알아보도록 하겠습니다. 오늘날 컴퓨터는 네트워크 케이블 또는 무선 공유기를 통해 언제 어디서나 상호간에 정보를 교환 받을 수 있습니다. 그리고 이러한 '연결(Connection)'은 기업에서 컴퓨터 시스템을 구축할 때 전체적인 구조를 설계하거나, 때로는 개발자가 하나의 컴퓨터로 여러 개의 컴퓨터를 관리하고자 할 때 유용하게 사용되는 접점, 즉 인터페이스(Interface)가 되어주기도 합니다. 따라서, 사용자는 업무의 효율성과 편의성이 증가하는 부수적인 효과도 얻기 때문에 컴퓨터 시스템에서 없어서는 안될 기술 중 하나라고 할 수 있습니다. 하지만, 해커(Hacker) 즉 뛰어난 프로그..