안경잡이개발자

728x90
반응형

운영체제 강좌 3- 다양한 시스템

 

다중 처리 시스템(Multiprocessor System) : CPU가 여러 개인 시스템을 의미하며 각각의 CPU들이 아주 밀접하게 통신을 하는 구조를 가지고 있습니다. 당연히 성능이 하나의 CPU가 있을 때보다 더 좋으며 하나의 처리기가 고장이 나더라도 속도가 느려질 뿐 시스템은 정상적으로 작동합니다.

 

 

 

- 대칭적 다중 처리 시스템 : CPU가 하나의 운영체제 하에서 작동합니다. 또한 CPU끼리 데이터를 효율적으로 공유하는 구조로 운용이 됩니다.

- 비대칭적 다중 처리 시스템 : 각 처리기마다 특정한 작업이 정해져 있고 하나의 주요 CPU가 시스템을 제어하며 다른 CPU들은 미리 정의된 작업 혹은 명령을 수행합니다.

 

분산 처리 시스템(Distributed Processing System) : 네트워크를 이용해 동시에 작업을 처리하는 시스템으로 각각 CPU들은 메모리를 공유하지 않습니다. 당연히 적절한 자원 공유로 계산 속도가 증가하고 신뢰성이 증가합니다.

 

 

 

- 클라이언트 & 서버 시스템(Client & Server System) : 클라이언트가 서버로 어떠한 작업 요청을 보내고 서버는 그 작업을 수행해서 다시 클라이언트에게 응답을 보내는 구조입니다. 대표적으로 웹 사이트와 접속자 사이의 관계를 이야기할 수 있습니다.

 

- P2P 시스템(Peer-To-Peer System) : 각 컴퓨터가 서버이자 클라이언트가 되는 시스템으로서 대표적인 예시로 토렌트(Torrent) 서비스가 있습니다.

 

클러스터 시스템(Clustered System) : 물리적으로 많은 CPU를 한 곳에 모아서 특정한 작업을 수행하는 시스템입니다. LAN으로 서로 연결된 각각의 CPU는 다른 CPU와 상호작용하여 고속 처리 서비스를 지원하게 됩니다.

 

 

- 대칭적 클러스터 시스템 : 각각의 CPU가 호스트가 되어 서로를 관리하는 구조로 둘 이상의 작업을 수행할 수 있습니다.

 

- 비대칭적 클러스터 시스템 : 호스트 CPU가 다른 CPU를 관리하면서 특정한 CPU가 작동을 중지하면 호스트 CPU가 작업을 돕는 구조입니다.

 

실시간 시스템(Real-Time System) : 실시간 시스템은 CPU의 동작이나 작업이 즉시적인 처리를 요할 때 채택되는 시스템입니다. 주로 의학 영상 시스템이나 무기 시스템에 실제로도 굉장히 많이 사용되고 있습니다.

 

- 연성 실시간 시스템(Soft Real-Time System) : 더욱 우선순위를 가지고 빠르게 계산이 되긴 해야 하지만 절대적으로 시간만을 중요시하지는 않는 시스템으로 일반 컴퓨터에도 많이 녹아 있는 구조입니다. 음악 등을 들을 때는 웬만하면 컴퓨터가 렉이 걸려도 끊이지 않습니다.

 

- 경성 실시간 시스템(Hard Real-Time System) : 빠른 시간이 절대적으로 요구되는 시스템으로 단기 메모리만 써서 시간 엄수를 최우선적으로 끌어 올립니다. 예를 들어 정밀하고 신속한 위치 판별을 요구하는 미사일 발사 시스템을 이야기할 수 있습니다.

728x90
반응형

Comment +0

728x90
반응형

운영체제 강좌 2- 시스템의 발전

 ※ 시스템의 발전에서 주요하게 꼽히는 부분은 바로 일괄처리 시스템에서 다중 프로그램 & 시분할 시스템으로의 발전입니다.

 ※ 일괄처리 시스템 (Batch System) : 초기의 컴퓨터가 동작하는 방식으로서 물리적으로 콘솔에서 수행을 하던 방식에 사용하던 시스템입니다. 초기의 운영체제는 즉시적으로 데이터를 처리할 수 있는 여건 또한 갖추지 못했습니다. 따라서 그 대안으로 일괄처리 시스템이 운영체제에 도입이 됨으로써 비슷한 것은 주기적으로 한 번에 묶어서 처리할 수 있게 되었습니다.

 

 

  일괄처리 시스템은 처리 속도를 향상시키기 위해서 유사한 요구를 가지는 작업들을 함께 모아서 이들을 하나의 그룹으로 수행합니다. 다만 기계적인 입/출력 장치의 속도가 CPU와 같은 전자적인 장치의 속도보다 느리기 때문에 CPU가 계속해서 쉬는 상태(idle)인 경우가 많습니다.

 ※ 다중 프로그램 시스템 (Multi-Programmed System) : CPU가 수행할 작업을 항상 가지도록 하는 방식입니다. 먼저 하드 디스크나 SSD에서 여러 개의 프로그램을 선택해서 메인 메모리(RAM)에 적재합니다. 이후에 메모리 내에 있는 작업 중에서 하나를 선택해 차례대로 실행합니다. 이 때 수행 중인 작업이 입/출력 등 때문에 기다리는 상태에 도달하면 CPU는 다른 작업으로 넘어가서 수행을 계속합니다. 이후에 첫 번째 작업이 끝나면 현재의 작업을 중단하고 다시 첫 번째 작업이 CPU를 차지하게 되는 방식입니다.


 

 

  다중 프로그램 시스템 덕분에 프로그램에서 카드를 읽거나 프린터를 쓰는 등의 시간에도 CPU를 계속해서 사용할 수 있게 되었습니다.

 ※ 시분할 시스템 (Time-Sharing System) : 다중 프로그래밍의 장점을 채택하여 확장한 시스템으로서 프로그램이 수행이 되고 있을 때 아주 짧은 주기로 CPU를 각각의 프로그램에 할당을 해 주는 방법입니다. 시분할 시스템으로 사용자는 프로그램이 수행이 되고 있는 동안에도 상호작용(Interact)할 수 있게 됩니다. 아주 짧은 주기로 전환이 이루어지기 때문에 각 사용자는 모든 프로그램이 동시에 작동을 하고 있다고 느끼게 됩니다.

 

 

  예를 들면 리눅스(Linux)와 같은 운영체제는 여러 명의 사용자가 동시에 한 대의 컴퓨터에 접속을 해서 서로 다른 처리를 할 수 있도록 해주는데 이는 시분할 시스템을 적절하게 반영한 사례라고 할 수 있습니다.

 ※ 작업 스케줄링 : 보조기억장치에 프로그램에 저장되어 있고 그 중 일부를 선택해서 메모리에 적재하는 전략입니다.

 ※ CPU 스케줄링 : 메모리에 올라온 작업들 중에서 무엇부터 실행할지 고르는 전략입니다.

 ※ 일괄처리 시스템은 상호작용이 필요 없는 큰 단위의 작업들을 수행할 때 사용이 됩니다.

728x90
반응형

Comment +0

728x90
반응형

운영체제 강좌 1- 운영체제의 개요
 
운영체제 : 컴퓨터의 사용자와 하드웨어 사이에서 중개자 역할을 해주는 프로그램


운영체제의 역사
 
   수작업 단일 프로그래밍 다중 프로그래밍 & 시분할 모바일 OS & 실시간 시스템
 
운영체제의 목적
 
   1. 사용자가 컴퓨터를 편리하게 사용하는 것
   2. 컴퓨터 하드웨어가 효율적으로 사용되는 것
 
컴퓨터 시스템의 처리 구조

 

 

 

   운영체제는 사용자와 하드웨어간의 전반적인 상호작용을 하면서 컴퓨터가 실행되는 동안 항상 수행되는 프로그램입니다.
     
  ※ 사용자 관점에서 볼 때 좋은 운영체제란 사용의 용이성에 중점을 두고 자원 이용의 극대화에 중점을 둔 운영체제라고 할 수 있습니다. 따라서 운영체제란 PC, 대형 컴퓨터 등을 가리지 않고 항상 사용자를 편리하게 해주는 하나의 프로그램이라고 할 수 있습니다.
     
  ※ 시스템의 관점에서 볼 때 좋은 운영체제란 하드웨어와 친밀하면서 자원을 효율적으로 할당해주는 자원 할당자 역할을 하는 운영체제입니다. 컴퓨터를 효율적이면서 공정하게 운영할 수 있도록 요청에 따라 적절한 자원을 할당해주며 사용자의 입/출력을 제어합니다.

728x90
반응형

Comment +0

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 8강 - 게임 화면으로 이동하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 플레이어가 실제로 곡을 선택해서 해당 곡의 난이도를 결정하고 게임을 시작할 수 있도록 게임 화면으로 이동하는 기능을 구현합니다. 게임 화면으로 이동한 뒤에는 실제로 게임이 플레이 되는 화면으로 작동할 것입니다.

※ 8강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

dynamic_beat_8.zip

 

8강 이미지 파일.zip

 

 

728x90
반응형

Comment +5

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 7강 - 곡 선택 기능 구현 (How To Make Java Rhythm Game) 강의 동영상입니다. 플레이어가 자신이 원하는 곡을 버튼을 눌러 선택할 수 있도록 기능을 구현합니다. 곡을 선택할 때마다 해당 곡의 하이라이트 부분이 재생되며 안정적으로 플레이어가 곡을 선택할 수 있도록 합니다.

※ 7강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

7강 음악 파일.zip

dynamic_beat_7.zip

 

728x90
반응형

Comment +1

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 6강 - 곡 선택 화면 디자인 (How To Make Java Rhythm Game) 강의 동영상입니다. 곡 선택 화면을 담당하는 전반적인 디자인과 음악적 요소들을 구성합니다.

※ 6강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

[##_1N|cfile6.uf@2637C64458F9FEEA0ED1EB.zip|filename="6강 음악 파일.zip" filemime="application/zip"|_##]

6강 이미지 파일.zip

dynamic_beat_6.zip

 

 

 

728x90
반응형

Comment +1

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 5강 - 화면 전환 (How To Make Java Rhythm Game) 강의 동영상입니다. 우리의 게임 화면에서 시작 버튼을 눌러서 메인 화면으로 넘어가는 부분을 구현해보는 시간을 가집니다.

※ 5강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

 

5강 이미지 파일.zip

dynamic_beat_5.zip

 

728x90
반응형

Comment +0

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 4강 - 메뉴 바 구현하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 우리가 만들 게임 화면에서의 메뉴 바 부분을 구현해보는 시간을 가집니다.

※ 4강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

4강 음악 파일.zip

4강 이미지 파일.zip

dynamic_beat_4.zip

 

728x90
반응형

Comment +1

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 3강 - 시작 화면에 음악 삽입하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 시작 화면에 음악을 삽입하고 그 음악을 재생하는 방법에 대해서 공부합니다.

※ 3강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.

 

jl1.0.1.jar

 

 

dynamic_beat_3.zip

 

 

728x90
반응형

Comment +0

728x90
반응형

자바(JAVA) 리듬게임 만들기 강좌 2강 - 게임 시작 화면 개발하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 우리가 만들 리듬게임의 게임 시작 화면을 개발하는 시간을 가집니다.

※ 2강 전체 소스 코드 & 강의 동영상을 올립니다.

728x90
반응형

Comment +0