본문 바로가기
728x90

💻 컴퓨터 시스템16

고정 소수점과 부동소수점 (컴퓨터에서의 실수 표현) 고정 소수점과 부동소수점 (컴퓨터에서의 실수 표현) 실수의 표현 방식 💡 컴퓨터에서 실수를 표현하는 방법은 정수에 비해 훨씬 복잡하다. 왜냐하면, 컴퓨터에서는 실수를 정수와 마찬가지로 2진수로만 표현해야 하기 때문. 따라서 실수를 표현하기 위한 다양한 방법들이 연구되었으며, 현재에는 다음과 같은 방식이 사용되고 있다. 1. 고정 소수점(fixed point) 방식 2. 부동 소수점(floating point) 방식 1. 고정 소수점 방식 실수는 보통 정수부와 소수부로 나눌 수 있다. 따라서 실수를 표현하는 가장 간단한 방식은 소수부의 자릿수를 미리 정하여, 고정된 자릿수의 소수를 표현 하는 것. 32비트 실수를 고정 소수점 방식으로 표현하면 다음과 같다. 앞의 16비트는 부호와 정수부를, 뒤의 16비트는.. 2021. 7. 20.
컴퓨터에서의 정수표현 (부호있는 정수, 2의 보수) 컴퓨터에서는 정수, 실수, 문자, 이미지, 동영상, 소리를 어떻게 표현하는가? 오늘은 컴퓨터 내부의 데이터 표현에 대해 생각해 보려고 한다. 우리가 지금 보고 있는, 무수히 많은 문자, 이미지, 소리, 영상... 어떻게 컴퓨터에 저장되어 있고, 어떻게 우리에게 보여줄 수 있는걸까? 컴퓨터 내부의 데이터 표현.. 덜컥 말이 어렵지만, 풀어서 잘 생각해보면 너무나 궁금한 것이다. 이번 포스팅에서는 컴퓨터에서 '정수'를 표현하는 법에 대해 알아보려고 한다. 진법 변환에 대해 알고 있다면, 해당 포스팅을 이해하기 더 쉽다. 정수표현 우선 이 두가지로 구분하면서 시작하자. 부호없는 정수(Unsigned integer) , 부호있는 정수(signed integer). 부호 없는 정수는 말 그대로 부호 -나 +가 존.. 2021. 7. 20.
가상메모리, 페이징, 세그멘테이션, 페이지교체 알고리즘 가상메모리, 페이징, 세그멘테이션, 페이지교체 알고리즘 # 가상메모리 프로그램이 실행되기 위해서는 주기억장치로 들어가야 하는데, 실행될 프로그램이 주기억장치보다 크거나 여러개인 경우에는 주기억장치 공간의 부족으로 인해 (저번 포스팅의 외부단편화, 내부단편화) 프로그램이 제대로 실행되지 못할 수 있다. 그래서 당장 실행에 필요한 부분만 우선 주기억장치에 저장하고, 가상의 공간을 만들어서 (나머지는 보조기억 장치에 두고 동작하도록 해서) 하나뿐인 컴퓨터 시스탬 내의 자원들을 여러개의 자원을 가지고 있는 것처럼 착각하게 하고자 하는 방법! ​ 즉 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 말한다. 이 방식은 멀티태스킹 운영 체제에서 흔히 사용되며, 실제 주기억장치보다 큰 메모리 영역을 제공한다.. 2021. 7. 20.
메모리 Memory OS의 두번째 역할은, 바로 '메모리 관리'(자원관리). 한정된 메모리를 보다 효율적으로 분배하고 사용하기 위한 것! 메모리 관리는 주기억 장치(메인메모리) 그리고 보조기억 장치(세컨더리 메모리). 이 두 파트로 나누어 설명할 수 있다. 주기억 장치 보조기억 장치 - 속도를 담당. 작업을 더 빠르게 하는 것. 어떻게 하면 딜레이 없이 CPU와 잘 소통할 수 있는지를 관리. - 얼마나 더 저장할 수 있는지, 공간을 관리. 공간에 파일들을 잘 저장해두고, 더 빨리 찾기위해 어떻게 data들을 분포할지 관리한다. ​ ​ 1. Main Memory : 주기억 장치​​ 1. Uni Programming : 유니 프로그래밍 전 포스팅에서 멀티 프로그래밍과 함께 설명했던, 메모리에 업로드되는 프로세스가 하나 뿐이라 .. 2021. 7. 20.
OS, 스케쥴링 알고리즘 OS, 스케쥴링 알고리즘 1. OS (운영체제) 가 하는 일 : CPU, 그리고 메모리를 관리하는 프로그램 ! 파일관리, 메모리 관리, 작업관리 를 한다. ​ 자세히 말하자면 CPU에게 무슨 작업을 해야하는지 알려주는 작업관리, 메모리의 자원관리. 주기억 장치(메인메모리)는 빠르게 처리할 수 있어야 하고, 보조기억 장치는 많은 데이터를 저장 가능하게 해야한다. ​ ​ 2-1. OS의 종류 (by 사용자) ​Single-user, Multi-user 그리고 Real time, embedded 가 있다. Single-user는 말 그대로 윈도우 95와 같은 개인 사용자 OS, Multi-user는 다중 사용자. (윈도우 XP) 이 경우 아이디, 패스워드, 권한 부여와 같은 사용자 관리가 필요하다. 쉽게 말해.. 2021. 7. 20.
[CPU 와 Memory] 캐시메모리, 왜 메모리가 컴퓨터의 전체 성능을 좌우할까? [CPU 와 Memory] 캐시메모리, 왜 메모리가 컴퓨터의 전체 성능을 좌우할까? # 왜 메모리가 컴퓨터의 전체 성능을 좌우할까? CPU가 일을 하려면 일의 내용이 CPU로 전달이 되어야 한다. 이 명령어나 데이터는 파일에 일부로 담겨있다. 파일은 하드 디스크에 저장이 되어 있다. 파일의 일부 내용이 하드 디스크에서 CPU까지 전달하려면 데이터가 BUS를 타야 한다. 버스란, 컴퓨터 안에 데이터들을 싣어 날라주는 연결선인데, 그러면 하드디스크에 있는 파일의 일부가 이 버스를 타고 CPU로 올라간다. CPU에서 일처리가 끝나면 결과가 다시 버스를 타고 어디론가 흘러간다. 이렇게 버스로 컴퓨터안에서 오간다. 이때 문제는, 버스가 상대적으로 느리다는 것이다. 상대적이라는 말을 이해해야 한다. 컴퓨터 안에서 .. 2021. 7. 20.
객체지향, 오버로딩과 오버라이딩의 차이, 생성자 객체지향, 오버로딩과 오버라이딩의 차이, 생성자 1. 객체지향 에서 중요하다고 여겨지는 두 가지 - 상속 - 다형성 그리고 그 기반에 추상화 라는 원리가 숨겨져 있다. 2. 오버로딩과 오버라이딩의 차이 오버로딩 은 중복선언. =여러번 정의 하는 것. 인수의 형태와 수가 기존에 선언된 메소드와 달라야 한다. 오버로딩의 조건은 매개변수의 data type과 개수. 리턴값은 관계가 없다.(같아도 되고 달라도 괜찮음) 오버라이딩은 부모 클래스에 정의된 같은 이름. 같은 파라미터 목록을 가진 메서드를 자식 클래스에서 재정의하는 경우를 가리킨다. 오버로딩과 달리 상속과 관련이 있다. 부모 클래스로부터 물려 받으며 자신에 맞게 수정한다. 메서드의 이름이 같아야 하고, 매개변수가 같아야 하고, 리턴 타입이 같아야 한다.. 2021. 7. 20.
728x90