Operating System
-
Static Library(정적 라이브러리) Dynamic Library(동적 라이브러리)Operating System 2020. 9. 27. 15:32
리눅스는 다음과 같은 확장자를 가진다. *.a 정적 라이브러리 파일 *.so 동적 라이브러리 파일 (so: shared object) 윈도우는 다음과 같은 확장자를 가진다. *.lib 정적 라이브러리 파일 *.lib *.dll 동적 라이브러리 파일(dll: dynamic link library) C 표준 라이브러리는 동적 라이브러리다.? ex) 리눅스에서 C 표준 라이브러리 파일은 libc.so다. C Standard Library(C 표준 라이브러리, ISO C library) 틀린 점이 있다면 댓글 부탁드리겠습니다. 감사합니다.
-
페이징(paging) 세그먼테이션(segmentation)Operating System 2020. 4. 29. 13:39
메모리 관리 기법 페이징 기법 페이징은 물리 메모리를 페이지라고 불리는 일정한 크기로 나누고, 선형 주소를 통해서 페이지 단위로 물리 주소로 접근하는 기법이다. 다시 말한다. 접근하는 방식이다. 즉, 메모리 접근 기법이라고 보는것이 더 정확해 보인다. 페이징이라는 기법을 통해서 물리 메모리에 접근해야 적재를 하던 스왑을 하던 읽던지 할 수 있기 때문에 페이지 단위로 물리 메모리에 접근하는 것까지가 페이징 기법이라고 하는 것이 더 정확할 것이다. 가상 메모리와 페이징 일단 가상메모리는 무엇인가? 보조기억장치를 주기억장치처럼 느끼게 해주는 것이다. 예를들어 설명하겠다. test1.c #include int main() { int a = 0; while(true) { printf("%d",&a); } retu..
-
Static Link(정적 링크) Dynamic Link(동적 링크)Operating System 2020. 4. 28. 15:52
소스코드를 컴파일하면 목적 파일이 생성된다. 그런데 이 목적 파일을 실행파일로 만들기 위해서는 링크 단계를 거치게 되는데 이때 라이브러리 함수를 사용했다면 이 라이브러리 파일이 정적 라이브러리 파일인지 동적 라이브러리 파일인지에 따라서 프로그램 동작이 다르다.(라이브러리 파일을 만들 때 정적 라이브러리 파일로 만들면 정적 링크를 해야 되고 동적 라이브러리 파일로 만들면 동적 링크를 해야 한다.) johnjarrer.tistory.com/139 Static Library(정적 라이브러리) Dynamic Library(동적 라이브러리) 리눅스는 다음과 같은 확장자를 가진다. *.a 정적 라이브러리 파일 *.so 동적 라이브러리 파일 (so: shared object) 윈도우는 다음과 같은 확장자를 가진다. ..
-
11. 타이머와 시간 관리Operating System 2019. 12. 30. 16:24
커널에 있어 시간의 흐름은 중요하다. 대다수의 커널 함수가 이벤트 기반이 아닌 시간 기반으로 동작하기 때문이다. 시간 기반으로 동작하는 함수로 스케줄러 실행 큐의 균형을 조절하는 함수나 화면을 갱신하는 함수 등을 예로 들 수 있다. 이런 함수는 초당 100회와 같이 정해진 주기에 따라 실행된다. 지연된 디스크 입출력을 처리하는 함수처럼 커널이 특정 함수를 상대적인 미래 시점에 실행해야 하는 경우도 있다. 예를 들면, 특정 작업을 지금으로부터 500ms 후에 실행해야 하는 경우가 있을 수 있다. 그리고 커널은 시스템의 가동 시간과 현재 날짜 및 시간도 관리해야 한다. 상대 시간과 절대 시간의 차이점을 주의하자. 앞으로 5초 후의 작업을 스케줄링하는데는 절대 시간 개념이 필요하지 않으며 상대시간 개념만 있으..
-
10. 커널 동기화 방법Operating System 2019. 12. 14. 00:49
원자적 동작 동기화 방법들 중 다른 동기화 방법의 기반이 되는 것이 바로 원자적 동작이다. 원자적 동작은 중단 없이 한 단위로 실행되는 명령이다. 더 이상 쪼갤 수 없는 입자를 원자라고 하듯이, 원자적 동작은 더 이상 나눌 수 없는 명령이다. 커널은 두 종류의 원자적 동작 인터페이스를 제공한다. 첫 번째는 정수 연산을 위한 것이고 두번째는 개별 비트 연산을 위한 것이다. 1. 원자적 정수 연산 원자적 정수 연산은 특별한 자료구조인 atomic_t를 사용한다. 일반적인 C의 int형 대신 특별한 자료구조를 사용하는 데는 몇 가지 이유가 있다. 우선 원자적 함수의 인자로 atomic_t 형을 사용함으로써 다른 자료형에 원자적 함수를 잘못 사용하는 것을 막을 수 있다. 또한 비 원자적 함수에 원자적 정수를 잘..