본문 바로가기

CS BASIC

(44)
[CS BASIC] 웹 서버(Web Server), 웹 애플리케이션 서버(WAS, Web Application Server), 웹 애플리케이션(Web Application) 개요 오늘은 웹 서버(Web Server), 웹 애플리케이션 서버(WAS, Web Application Server) 그리고 웹 애플리케이션(Web Application)에 대해서 알아보도록 하겠습니다.  오늘의 포스팅은 아래와 같은 내용으로 구성됩니다.웹 서버 (Web Server)란? 웹 애플리케이션 서버(WAS, Web Application Server)란? 웹 애플리케이션(Web Application)웹 서버 (Web Server)란? 웹 서버란 월드 와이드 웹(WWW)에서 HTTP 프로토콜에 맞추어 고유한 URI 또는 URL을 통해 HTML이라는 마크업 문서를 볼 수 있도록 하는 서버입니다. 전 세계에 있는 각 컴퓨터는 공유기 또는 자체 네트워크 설정을 통하여 IP주소 + 포트 번호의 조합으로 ..
[네트워크] 통신 시스템 일반 개요오늘은 컴퓨터 네트워크의 통신 시스템에 대해서 알아보도록 하겠습니다. 통신 시스템컴퓨터의 데이터 통신 시스템은 크게 정보를 보내는 송신 측과 정보 전달을 담당하는 전송 매체(=채널), 그리고 정보를 받는 수신 측으로 구분할 수 있습니다.이러한 구조를 그림으로 표현하면 아래와 같습니다.  데이터 통신을 위해 송신 측에서 담당하는 기능은 다음과 같습니다.부호화(encoding)정보원 부호화 (source encoding)채널 부호화(chanel encoding)암호화(encryption)다중화(multiplexing)변조(modulation) 송신 측 담당 기능구분설명정보원 부호화(source encoding)음성이나 영상과 같은 아날로그 정보를 ..
[운영체제] 디스크 스케줄링 개요오늘은 디스크 스케줄링에 대해서 알아보도록 하겠습니다.요즘 컴퓨터에서 사용하는 저장장치의 종류는 정말 다양해졌습니다.과거에는 플로피 디스크라고 해서 오늘날의 ‘저장’ 버튼에 해당하는 저장장치부터 시작해서 하드 디스크, 그리고 SSD까지 시간이 지날수록 저장소의 저장 속도는 빨라졌고, 용량은 많아졌습니다. 이러한 눈부신 저장장치의 하드웨어적 발전 속에서,디스크 스케줄링은 다소 생소한 개념이 된 것 같습니다. 디스크 스케줄링은 컴퓨터 디스크에서 정보를 빠르고 효율적으로 입출력하기 위해 고안된 스케줄링 전략입니다. 지금까지 운영체제는 주로 CPU와 같이 비교적 비싼 자원에 대해서 어떻게 관리하고 있는지 소개했는데요. 오늘은 운영체제가 플로피 디스크부터 하드 디스크, SSD까지 외부 저..
[운영체제] 선점 스케줄링(Preemptive)과 비선점 스케줄링(Nonpreemptive) 기법 개요 오늘은 지난 포스팅에 이어서 실제로 운영체제가 프로세스에게 컴퓨터 자원을 효율적으로 분배하는 전략, 즉 스케줄링 기법에 대해서 알아보도록 하겠습니다. 선점 스케줄링(Preemptive)과 비선점 스케줄링(Nonpreemptive) 기법 운영체제는 CPU, 즉 중앙처리장치라는 비싼 자원을 각 프로세스에게 공정하고 효율적으로 분배하기 위하여 다양한 전략을 채택하고 있습니다. 이 과정에서 어떤 프로세스가 운영체제로부터 중앙처리장치를 할당받은 뒤에 또 다른 프로세스가 중앙처리장치를 요구한다면, 운영체제는 ① 다른 프로세스에게 기다리게 하거나, ② 프로세스의 우선순위를 고려하여 더 높은 우선순위를 가진 프로세스에게 강제로 CPU를 할당해줄수도 있습니다. 이 때, ①의 방식으로 컴퓨터 자원을 관리 하는 기법을..
[운영체제] 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계층, 그리고 각 계층별 프로토콜까지 알아보도록 하겠습니다. 컴퓨터가 처음 발명 되었을 때에는 다이소에서 몇천원을 지불하면 구매할 수 있는 계산기와 같은 역할을 주로 수행하였습니다. 수학에서 필요로 하는 단순, 반복, 복잡한 계산에 대해서 사람과 달리 실수 없이 꾸준히 할 수 있는 훌륭한 기계였습니다. 그렇기에 과거에는 수학에서 계산의 효율성을 위해 널리 사용 되다가 점차 사용자가 늘어가다보니 컴퓨터가 수행하는 역할이 늘어갔습니다. 과거의 컴퓨터를 사용하던 컴퓨터 과학자, 수학자들은 이러한 과정 조차도 더 효율적으로 하고 싶었던 것인지, 서로 다른 컴퓨터, 즉 계산기 사이에 데이터를 주고 받으면 더 효율적으로 업무를 처리할 수 있을까 하는 생각을 가..