전체 글(19)
-
[컴퓨터 구조] 컴퓨터 구조
응용프로그램들은 복잡한 코드들로 구성되어있다. but 하드웨어는 단순한 것만 실행할 수 있다. 그러므로 이러한 응용프로그램들을 실행하기 위해서는 번역 or 해독하는 작업이 필요하다.(추상화) 기계는 단순하게 on(1), off(0) 로만 이루어져 있다.이것을 이진수 or bit 라고 부른다. 이러한 on, off의 명령들로 이루어진 것을 우리는 명령어라고 한다. 명령어는 bit들의 집합으로 이것을 사람이 읽고, 명령을 내리기에는 힘들다. 그래서 이것들을 기호로 나타내기 시작했다. 고급 언어(c, c++, java) A = A + B ↓ 컴파일러 고급언어를 어셈블리어로 컴파일 ↓ 어셈블리언어 ADD A, B ↓ 어셈블러 기호를 이진수로 번역 ↓ 기계어 1000110010100000 컴퓨터의 구성요소 I/O..
2020.06.10 -
[컴퓨터 구조] 컴퓨터 설계 아이디어
컴퓨터가 개발된 이후에 컴퓨터의 성능을 개선하기 위한 노력은 활발히 이루어졌다. 그러한 노력의 흔적으로 8가지 위대한 아이디어가 있다. 1. Moore의 법칙을 고려한 설계 moore의 법칙 매 18~24개월 마다 칩에 집적되는 소자의 수가 2배가 된다. 컴퓨터를 설계하는데에는 많게는 수년이 걸릴정도로 매우 오래 걸린다. 그러므로 moore의 법칙을 통해 발전되는 하드웨어들을 예상하여 설계하는 것이 필요하다. 2. 추상화(abstraction) 복잡한 설계를 최대한 단순하게 표현하자. 그림 등의 형식으로 하위 수준의 상세한 사항을 안보이게 표현함으로써 단순화하는 작업이 필요하다. 3. 자주 생기는 일을 빠르게(common cast fast) 자주 생기는 일을 빠르게 하는 것이 드물게 생기는 일을 최적화 ..
2020.06.10 -
[OS] Operating System Structure
OS를 설계, 구현함에 있어 해결하지 못한 문제가 많지만 일부분만 접근한다면 해결될 수 있다. 접근 방식 사용자 측면 운영 체제는 사용하기 편하고, 배우기 쉬우며 신뢰할 수 있고, 안전하며 빠릅니다. 시스템 측면 운영 체제는 쉽게 설계, 구현, 유지 관리가 용이하고, 유연하고, 안정적이며, 오류가 없고, 효율적이어야 합니다. OS Structure Simple structure 계층화 X 모듈화 X 하드웨어 프로텍션 X -> 응용프로그램이 하드웨어를 건들여 망가질 가능성 높음 현재는 거의 사용되고 있지 않다. Layered approach(계층화 구조) 하부에서 상부 X 상부에서 하부 O 장점 현재 레이어만 신경 쓰면 되므로 구조가 간단하다. 디버깅이 쉽다. Microkernel(최소한의 커널) 핵심적인..
2020.06.07 -
[OS] Operating System Services
For Users Interface 하드웨어 인터페이스 컴퓨터와 컴퓨터 즉, 하드웨어 간의 통신을 위한 인터페이스 소프트웨어 인터페이스 소프트웨어 간의 통신을 위해 메시지를 달하는 방식 등이 결정된 것 사용자 인터페이스(User Interface) 컴퓨터와 사용자 사이의 상호작용 및 정보 교환을 위한 인터페이스 CLI(Command-Line Interface) - cmd 창에서처럼 command로 조작 Batch Interface - 일련의 명령어들이 적혀있는 파일을 처음부터 끝까지 연속적으로 실행 - 오류가 있더라도, 전체 파일의 실행이 끝나야 알 수 있음 GUI(Graphical User Interface) - 현재의 window 환경처럼 마우스 클릭으로 조작 프로그램 실행 프로그램을 로드하고, 실행..
2020.06.07 -
[OS] Multiprogramming
CPU의 성능은 증가하는데 기계적인 I/O 장치들의 속도는 이에 미치지 못하게 되었다. 그래서 CPU가 I/O장치를 기다리는 동안 다른 프로그램을 실행할 수 있도록 만들 필요성이 생겼다. 멀티 프로그래밍 항상 CPU와 I/O 장치를 사용 중인 상태로 유지하자!! HOW? job(code 및 data)들을 구성해 놓는다. job의 일부를 메모리에 저장해 놓고 하나씩 job을 선택하여 실행한다. I/O 작업 등으로 대기해야하는 경우 다른 job을 실행한다. Concepts CPU Scheduling 여러 작업이 동시에 준비되어있다면, CPU 스케줄링으로 실행할 작업을 선택한다. Job Scheduling 여러 작업을 메모리로 가져올 준비가 되어있지만, 메모리의 공간이 충분하지 않을 경우 Proccess 현재..
2020.06.07 -
[OS] 컴퓨터 하드웨어
CPU와 I/O 장치들은 bus로 연결되어 data를 주고받는다. bus란? 주소, 데이터 및 제어신호를 전달하는 병렬 wires 1. 시스템 버스 -> CPU와 I/O bridge를 연결 2. 메모리 버스 -> I/O bridge와 메모리를 연결 3. I/O 버스 -> 여러 I/O 장치끼리의 연결 I/O 장치들은 직접 시스템 버스에 접근할 수 없다. WHY? 다양한 I/O 들의 길이와 속도가 다양하기 때문에 데이터를 바로 전달하지 않고, device controller를 거쳐서 전달한다. device controller 란? CPU에서 내린 명령들을 저장하는 공간. I/O 장치들로 명령어를 바로 전달하지 않고, device controller에 저장 후 device controller에서 I/O 장치들..
2020.06.07