세그먼트가 무엇인가요??

binoopang의 이미지

리눅스에서 세그먼트라는 말이 많이 나오는데 정확히 어떤것을 지칭하는건지 궁금합니다.
메모리의 어떤 덩어리를 말하는거 같긴한데 ..
세그먼트 폴트에서 나오는 그 세그먼트도 같은건가요?

appler의 이미지

segment ; 세그먼트

1. 네트웍에서의 세그먼트는, 브리지, 라우터, 허브 또는 스위치 등에 의해 묶여있는 네트웍의 한 부분을 말한다. 이더넷을 여러 개의 세그먼트로 나누는 것은, 랜 상의 대역폭을 증가시키는 가장 일반적인 방법 중의 하나이다. 만약 세그먼트가 적절히 분할되면, 대부분의 네트웍 트래픽은 단일 세그먼트 내에서는 10 Mbps의 대역폭을 모두 사용할 수 있다. 허브나 스위치들은 각 세그먼트를 랜에 연결시키는데 사용되는 장비이다.

2. 가상메모리 시스템에서의 세그먼트는, 데이터가 주기억장치로 들어오고 나가는 스왑핑이 일어날 때, 데이터의 크기가 고정되어 있는 페이지와는 달리, 크기가 가변적인 데이터 단위를 말한다.

<2번이 님이 원하는 답 같은데.... 맞나요??> ㅎㅎ

segment fault 나는건 아마도 고정되어 있지 않은 공간을 분할 해야하는데 나누지 못해서 나는 에러라고
생각됨..-_-;;하하...

정확한 설명 달아주시는 분이 있으면 좋겠네요..

-- 텀즈 제공 --
http://www.terms.co.kr

________________________________

궁금증으로 가득찬 20후반 -_-;;
탄생은 죽음의 시작에 불과하다.

블로그
http://azdream.egloos.com
http://koreaappler.blogspot.com

검색엔진
http://applersearchengine.topicle.com/


laziness, impatience, hubris

不恥下問 - 진정으로 대화를 원하면 겸손하게 모르는 것은 모른다고 말하는 용기가 필요하다.

samsee의 이미지

메모리를 나누는 단위입니다. 운영체제 발전 과정에서 나온 것이지요. 메모리 보호와 페이징을 위해 사용됩니다. 여러 개의 프로세스가 동시에 동작하는 multi-programming이 발전되면서 나왔던 걸로 기억합니다. 동시에 동작한다기 보다는 하나의 메모리를 각자 나눠서 사용하는 것이지요. 페이징은 Virtual Memory와 Swapping과 관계가 있죠.

Segmentation Fault의 Segmentation도 같은 세그멘테이션입니다. ㅋ

아래를 참조해 보세요.
http://en.wikipedia.org/wiki/Segmentation_(memory)

Necromancer의 이미지

OS/시스템프로그래밍/컴퓨터구조론 관점에서 보자면

어떤 특정 성격을 지닌 데이터를 모아둔 메모리 블럭 정도로 생각하시면 됩니다.
페이지도 메모리 블럭으로 볼 수 있는데
이때 세그먼트와 페이지의 차이는 크기가 가변이냐 고정이냐의 여부입니다.

세그먼트 폴트는 말 그대로 세그먼트가 허가된 범위를 벗어난 영역을 access할때 벌어지는거고요.
보호모드 프로그래밍 보시면 세그먼트 영역을 지정하는거 보실겁니다. (x86이면 디스크립터에 시작주소와 크기 기록)

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

kiwist의 이미지

segment와 page의 차이는 윗 분들이 잘 설명해주신 것 같고, 참고로 덧붙이자면, 보통 RISC CPU들은 메모리를 page단위로 취급하지만, x86 CPU들은 기본적으로 메모리를 segment단위로 처리합니다. ^^;

shint의 이미지

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.